>>>list(123)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>[123]
[123]
为什么[[]工作时list(123)导致异常?
答案 0 :(得分:1)
list()是类型构造函数 您放在方括号内的内容必须是可迭代的,即可以使用循环来迭代的内容。像字符串或整数列表或浮点数。作为整数本身是不可迭代的。 list(123)给出错误。但是如果您输入list('123');然后它将返回一个列表为['1','2','3']。
在[123]的情况下,它表示单个整数123的列表。因此它可以工作。就像在解释器中编写23并得到23一样。
答案 1 :(得分:1)
对于空列表,使用[]
会更好,因为它更快并且避免了名称查询
内置的list()
对于将其他可迭代对象转换为列表很有用。
答案 2 :(得分:0)
因为list
是一个可调用对象,它将一个对象作为参数必须是可迭代的,而[]
是列表文字,并且理解提供的单个int应该是列表的唯一元素。 / p>
如果要使用list
,则必须将数字包装在可迭代的数字中,例如list((123,))
。
答案 3 :(得分:-1)
list()构造函数的语法为:
list([iterable])
并且int不可迭代。这样。