Python []和list有什么区别

Python []和list有什么区别,python,python-3.x,list,Python,Python 3.x,List,为什么在[]工作时list123会导致异常???列表构造函数的语法是: >>>list(123) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not iterable >>>[123] [123] int是不可数的。因此..因为list是一个可调用的对象,它将一个对象作为参数,该参数

为什么在[]工作时list123会导致异常???

列表构造函数的语法是:

>>>list(123)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>[123]
[123]
int是不可数的。因此..

因为list是一个可调用的对象,它将一个对象作为参数,该参数必须是iterable,而[]是list literal,并且理解提供的单个int应该是列表的唯一元素

如果要使用list,必须将数字包装在一个iterable中,例如list123。

list是一个类型构造函数 放在括号内的内容必须是可编辑的,即可以使用循环进行迭代的内容。比如字符串、整数列表或浮点数。作为一个整数本身是不可数的;list123给出了一个错误。但如果你输入列表'123';然后它返回一个列表作为['1','2','3']

在[123]的情况下,它表示单个整数123的列表。所以它起作用了。这就像在解释器中写23,得到23一样

对于空列表,使用[]要好得多,因为它更快,并且避免了名称查找


内置列表可用于将某些其他iterable转换为列表。

由于int不是iterable,第二个示例是list literal[]参数是元素本身。list只接受一个iterable argumentlist是一个函数,如果函数一表示可调用的,则可以使用参数调用。这就是中函数的含义,它包括所有内置类。@TerryJanReedy不是一个函数,而是一个可变序列类型。您链接的文档中说这是一个函数和类型列表,这是一个错误的编辑,应该恢复。我看到的其他内置类都没有这样的注释。列表在这方面并没有什么特别之处。无论如何,鉴于“函数、绑定方法、内置函数、内置未绑定方法和类型”并没有一个更专门的术语,我认为callable是在不太迂腐的情况下正确使用的最佳术语,所以答案很好。@abarnert我打开了。我同意dict条目可以改进,因此打算使用set条目作为集合类的模型。这是误导。这些括号表示iterable是可选的,因此您可以调用list来获得一个空列表,但从上下文来看,您的意思是您必须将iterable放在括号中,例如,要从元组2、3、4中创建列表,您必须编写list[2、3、4],当然,这是可行的,当然,这是可选的,我假设程序员已经习惯于阅读此类技术文档……能够阅读和理解语言参考文档而无需任何解释的人不会问这个问题。
list([iterable])