在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 个回答
-
将
dict
对象转换为列表时,它仅使用键。但是,如果用方括号将其包围,则所有内容都将保持不变,只会使其成为
dict
s的列表,其中仅包含一项。>>> 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 >>>
有点误导:)