此问题在此处已有答案:
What's the difference between list() and [] [duplicate](3个答案)
两年前关闭了。
在Python 3中初始化list
时,list()
和[]
之间有什么区别吗?
此问题在此处已有答案:
What's the difference between list() and [] [duplicate](3个答案)
两年前关闭了。
在Python 3中初始化list
时,list()
和[]
之间有什么区别吗?
5条答案
按热度按时间lskq00tm1#
由于
list()
是一个 * 函数,它返回 *list
* 对象 *,而[]
是 * 列表对象本身 *,第二种形式更快,因为它不涉及函数调用:所以如果你真的想找到一个区别,那就是。然而,实际上它们是一样的。
z2acfund2#
它们接近相等;构造函数变量进行函数查找和函数调用;字面量不会-反汇编Python字节码显示:
这输出:
至于时间方面:this answer中给出的基准可能会误导某些情况(可能很少见)。例如,与以下内容进行比较:
似乎使用
list
从生成器构造列表比使用列表解析更快。我假设这是因为列表解析中的for
循环是python循环,而相同的循环在list
版本的python解释器中的C
实现中运行。还要注意,
list
可以被重新分配给其他东西(例如,list = int
现在的list()
将只返回整数0
)-但您不能修改[]
。虽然这可能是显而易见的...为了完整性:这两个版本具有不同的接口:
list
接受iterable上的exactls作为参数。它将迭代它并将元素放入新列表中;文字版本不(除了显式列表解析):ws51t4hk3#
在功能上,它们产生相同的结果,不同的内部Python实现:
vhipe2zx4#
让我们举个例子:
基于这个例子,我们可以说:**[ ]不尝试将元组转换为元素列表,而list()**是尝试将元组转换为元素列表的方法。
0aydgbwb5#
list()方法接受序列类型并将其转换为列表。这用于将给定的元组转换为列表。
输出:
其中
[]
直接声明为列表