Passing None
到Python的list
构造函数是一个TypeError
:
>>> l = list(None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable
但是使用括号来实例化list
很好;使用None
使用内置函数也很好:
>>> l = [None]
>>> l.append(None)
>>> l
[None, None]
我的理解是list()
and []
是创建新的等效方法list
。我缺少什么?
他们是not相等的。list()
尝试迭代其参数,使每个对象成为单独的列表项,而列表文字[]
只接受所给的内容。比较:
>>> list("foo")
['f', 'o', 'o']
>>> ["foo"]
['foo']
你无法迭代None
,因此出现错误。对于任何不可迭代的参数,您都会得到相同的结果:
>>> list(1)
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
list(1)
TypeError: 'int' object is not iterable
得到相当于a = [None]
using list()
,你必须向它传递一个带有单个对象的可迭代对象,例如
a = list([None])
虽然这将创建列表文字然后复制它,所以在这个简单的示例中并不是很有用!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)