一尘不染

在Python中创建一个空列表

python

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

l = []

要么

l = list()

我之所以这样问是因为两个原因:

  1. 技术原因,关于哪个更快。(创建一个类会导致开销吗?)

  2. 代码可读性-这是标准约定。


阅读 230

收藏
2020-12-20

共1个答案

一尘不染

您可以通过以下方法测试哪段代码更快:

% 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

但是,实际上,这种初始化很可能只是程序的一小部分,因此担心此初始化可能会出错。

可读性非常主观。我更喜欢[],但是像AlexMartelli这样的一些非常博学的人更喜欢,list()因为它很明显。

我是喜欢单词而不是标点符号的人之一-例如,这就是我选择Python而不是Perl的原因之一。毕竟,“没有括号的情况下生活会更好”(一个古老的Python座右铭,穿着一件带有微笑少年的卡通漫画的T恤;-)毕竟(最初是指括号与缩进进行分组的,但是,嘿,大括号就是大括号!-)。

通常,“支付”几纳秒的时间(目的是使用清晰易读的短词而不是花括号,方括号和“ notnots”)(这主要是查找内置命名空间的成本,您每次都要付出的代价)使用内置的类型或函数,您可以通过取消循环进行一些查找来对其进行适度的优化)。

所以,我一般喜欢谁写的一个dict()为{},list(L)代替L[:]以及list()对[],tuple()对(),等等-只是一般的风格偏好发音的代码。当我在使用不同风格的现有代码库上工作时,或者当我在新项目中的队友具有强烈的偏好时,我当然可以接受(尽管对于队友来说,这不是不做些宣扬的尝试) ;-)。

2020-12-20