原文:Python Empty List Tutorial – How to Create an Empty List in Python,作者:Estefania Cassingena Navone
如果你想学习如何在 Python 中高效地创建一个空列表,那么这篇文章就是为你准备的。
你将学习:
- 如何使用方括号
[]
创建一个空列表 - 如何使用
list()
创建一个空列表 - 它们的用例
- 它们的效率如何(一个比另一个快!)我们将使用
timeit
模块来比较它们
我们开始吧!✨
🔹 使用方括号
你可以使用一对空方括号创建一个空列表,如下所示:
💡 提示:我们将空列表分配给一个变量,以便稍后在我们的程序中使用它。
例如:
num = []
空列表的长度为 0
,你可以在此处看到:
>>> num = []
>>> len(num)
0
空列表是假值,这意味着它们在布尔上下文中被评估为 False
:
>>> num = []
>>> bool(num)
False
给一个空列表添加元素
你可以使用 append()
和 insert()
方法将元素添加到空列表中:
append()
将元素添加到列表的末尾insert()
在你选择的列表的特定索引处添加元素
由于列表可以是真值或假值,具体取决于它们在评估时是否为空,因此你可以在如下条件语句中使用它们:
if num:
print("This list is not empty")
else:
print("This list is empty")
这段代码的输出是:
This list is empty
因为列表是空的,所以它的计算结果为 False。
一般来说:
- 如果列表不为空,则计算结果为
True
,因此执行 if 子句 - 如果列表为空,则计算结果为
False
,因此执行 else 子句
例如:
在下面的示例中,我们创建一个空列表并将其分配给变量 num
。 然后,使用 for 循环,我们将一系列元素(整数)添加到最初为空的列表中:
>>> num = []
>>> for i in range(3, 15, 2):
num.append(i)
我们检查变量的值以查看是否成功追加了元素,并确认列表不再为空:
>>> num
[3, 5, 7, 9, 11, 13]
💡 提示:我们通常使用 append()
将第一个元素添加到空列表中,但你也可以调用 insert()
方法以索引 0
添加此元素:
>>> num = []
>>> num.insert(0, 1.5) # add the float 1.5 at index 0
>>> num
[1.5]
🔸 使用 list() 构造函数
或者,你可以使用类型构造函数 list()
创建一个空列表,它会创建一个新的列表对象。
根据 Python 文档:
如果没有给出参数,构造函数会创建一个新的空列表,[]
。
💡 提示:这会在内存中创建一个新的列表对象,并且由于我们没有将任何参数传递给 list()
,因此将创建一个空列表。
例如:
num = list()
这个空列表的长度为 0
,如下所示:
>>> num = list()
>>> len(num)
0
当它为空时它是一个假值(它在布尔上下文中为 False
):
>>> num = list()
>>> bool(num)
False
示例:
这是一个函数列表,因此我们可以给它添加元素:
>>> num = list()
>>> for i in range(3, 15, 2):
num.append(i)
结果将是一个非空列表,如下所示:
>>> num
[3, 5, 7, 9, 11, 13]
🔹 用例
- 我们通常使用
list()
从现有的可迭代对象(例如字符串、字典或元组)创建列表。 - 你通常会看到方括号
[]
用于在 Python 中创建空列表,因为这种语法更简洁、更快。
🔸 效率
等等!我刚刚告诉过你 []
比 list()
快......
但是快多少呢?
让我们使用 timeit 模块检查它们的时间效率。
要在你的 Python 程序中使用这个模块,你需要导入它:
>>> import timeit
具体来说,我们将使用该模块中的 timeit 函数,你可以使用以下语法调用它:
💡 提示:代码重复多次,以减少可能由外部因素引起的时间差异,例如在特定时刻可能正在运行的其他进程。这使得比较的结果更可靠。
🚦 在你的标记上......设置......准备好了!这是代码和输出:
首先,我们导入模块。
>>> import timeit
然后,我们开始测试每个语法。
测试 []
:
>>> timeit.timeit('[]', number=10**4)
0.0008467000000109692
测试 list()
:
>>> timeit.timeit('list()', number=10**4)
0.002867799999989984
💡 提示:请注意,你要计时的代码必须用单引号 ''
或双引号 ""
括起来。timeit
函数返回的时间以秒为单位。
比较结果:
[]
:0.0008467000000109692
list()
:0.002867799999989984
可以看到 []
比 list()
快得多。在这个测试中有大约 0.002
秒的差异:
>>> 0.002867799999989984 - 0.0008467000000109692
0.0020210999999790147
我敢肯定你现在一定会问这个问题:做同样的事情,为什么 list()
的效率低于 []
?
嗯...list()
比较慢,因为它需要查找函数的名称,调用它,然后在内存中创建列表对象。相比之下,[]
就像一个“捷径”,不需要那么多中间步骤就可以在内存中创建列表。
这个时间差异不会对你的程序的性能产生太大影响,但是很高兴知道哪个更有效以及它们在幕后是如何工作的。
🔹 总结
你可以使用一对空方括号 []
或类型构造函数 list()
创建一个空列表,这是一个内置函数,可在未传递参数时创建一个空列表。
方括号 []
在 Python 中常用来创建空列表,因为它更快更简洁。
我真的希望你喜欢我的文章并觉得它很有帮助。现在你可以在 Python 项目中创建空列表了。欢迎查看我的在线课程,在推特上关注我。⭐️