问题描述
[x]
是包含 的列表x
。
list(x)
接受x
(必须已经可以 !)并将其转换为列表。
>>> [1] # list literal
[1]
>>> ['abc'] # list containing 'abc'
['abc']
>>> list(1)
# TypeError
>>> list((1,)) # list constructor
[1]
>>> list('abc') # strings are iterables
['a', 'b', 'c'] # turns string into list!
列表构造函数list(...)
-像python的所有内置集合类型(集合,列表,元组,collections.deque等)一样-
可以采用一个可迭代的参数并将其转换。
解决方法
Python似乎在创建列表对象[x]
和list(x)
何时创建列表对象之间有所区别x
。为什么会有这种差异?
>>> a = [dict(a = 1)]
>>> [{'a' : 1}]
>>> a = list(dict(a=1))
>>> a = ['a']
虽然第一个表达式似乎按预期工作,但第二个表达式的工作方式更像是迭代dict:
>>> l = []
>>> for e in {'a' :1}:
l.append(e)
>>> l
>>> ['a']