在Python中使用[]和list()之间的区别

发布于 2021-01-29 18:37:54

有人可以解释这个代码吗?

l3 = [ {'from': 55, 'till': 55, 'interest': 15}, ]
l4 = list( {'from': 55, 'till': 55, 'interest': 15}, )

print l3, type(l3)
print l4, type(l4)

输出:

[{'till': 55, 'from': 55, 'interest': 15}] <type 'list'>
['till', 'from', 'interest'] <type 'list'>
关注者
0
被浏览
276
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    dict对象转换为列表时,它仅使用键。

    但是,如果用方括号将其包围,则所有内容都将保持不变,只会使其成为dicts的列表,其中仅包含一项。

    >>> obj = {1: 2, 3: 4, 5: 6, 7: 8}
    >>> list(obj)
    [1, 3, 5, 7]
    >>> [obj]
    [{1: 2, 3: 4, 5: 6, 7: 8}]
    >>>
    

    这是因为,当您使用循环for遍历时,它也只使用了键:

    >>> for k in obj:
    ...     print k
    ... 
    1
    3
    5
    7
    >>>
    

    但是,如果要获取键 值,请使用.items()

    >>> list(obj.items())
    [(1, 2), (3, 4), (5, 6), (7, 8)]
    >>>
    

    使用for循环:

    >>> for k, v in obj.items():
    ...     print k, v
    ... 
    1 2
    3 4
    5 6
    7 8
    >>>
    

    但是,当您输入时list.__doc__,它会为您提供[].__doc__

    >>> print list.__doc__
    list() -> new list
    list(sequence) -> new list initialized from sequence's items
    >>> 
    >>> print [].__doc__
    list() -> new list
    list(sequence) -> new list initialized from sequence's items
    >>>
    

    有点误导:)



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看