在Python中创建一个空列表

22 浏览
0 Comments

在Python中创建一个空列表

在Python中,创建一个新的空列表的最佳方法是什么?

l = [] 

还是

l = list()

我问这个问题有两个原因:

  1. 技术原因,哪个更快。(创建一个类会引起额外开销吗?)
  2. 代码的可读性 - 哪个是标准约定。
0
0 Comments

创建一个空列表的两种方法:使用[]和使用list()。在Python中,使用[]创建空列表的速度比使用list()创建空列表的速度快,因为list()有一些额外的步骤需要执行。

首先,list()需要进行符号查找,因为Python无法事先知道您是否重新定义了list。接下来,list()需要进行函数调用。然后,它需要检查是否传递了可迭代的参数(以便从中创建列表)。在我们的情况下,没有传递参数,但是仍然需要进行一次“if”检查。这些额外的步骤使得list()相对于[]而言速度较慢。

然而,在大多数情况下,这种速度差异不会对实际应用产生任何影响。

需要注意的是,在使用list()时,它只需要检查是否有参数传递进来。而“检查是否可迭代”和“从参数创建列表”的步骤并不会发生;它们只在有参数的情况下才会应用。实际上,[]的C代码可能调用了与list()相同的C代码。无论如何,与(a)+(b)相比,(c)中涉及的时间都非常短。

总结一下,使用[]创建空列表的速度快于使用list()。在大多数情况下,这种速度差异对实际应用没有实质性影响。

0
0 Comments

在Python中创建一个空列表的方法是使用[]。这种方法的出现是有原因的,原因有两个。第一个原因是这种方法更快,因为列表符号是一个短路操作。第二个原因是创建一个带有项的列表应该看起来和创建一个没有项的列表差不多,为什么会有差异呢?因此,这种方法可以解决这个问题。

0
0 Comments

在Python中创建一个空列表的方法是使用[]list()。下面的代码展示了如何测试这两种方法的性能:

% python -mtimeit  "l=[]"
10000000 loops, best of 3: 0.0711 usec per loop
% python -mtimeit  "l=list()"
1000000 loops, best of 3: 0.297 usec per loop

根据测试结果,使用[]创建空列表的速度比使用list()要快得多。但是在实际应用中,初始化列表可能只是程序的一个非常小的部分,所以担心性能差异可能是没有必要的。

关于代码的可读性,这是一个非常主观的问题。有些人喜欢使用[],但一些非常有经验的人,如Alex Martelli,更喜欢使用list(),因为它可以被发音。

有人会疑惑为什么list('')的结果是[]而不是['']。这是因为list()函数是从可迭代类型创建列表的,它不能接受多个参数。如果尝试输入list('abcd'),就能理解这一点了。

0