在Python中创建新的空列表的最佳方法是什么?
l = []
要么
l = 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
但是,实际上,这种初始化很可能只是程序的一小部分,因此担心此初始化可能会出错。
可读性非常主观。我更喜欢[],但是像AlexMartelli这样的一些非常博学的人更喜欢,list()因为它很明显。
[]
list()
我是喜欢单词而不是标点符号的人之一-例如,这就是我选择Python而不是Perl的原因之一。毕竟,“没有括号的情况下生活会更好”(一个古老的Python座右铭,穿着一件带有微笑少年的卡通漫画的T恤;-)毕竟(最初是指括号与缩进进行分组的,但是,嘿,大括号就是大括号!-)。
通常,“支付”几纳秒的时间(目的是使用清晰易读的短词而不是花括号,方括号和“ notnots”)(这主要是查找内置命名空间的成本,您每次都要付出的代价)使用内置的类型或函数,您可以通过取消循环进行一些查找来对其进行适度的优化)。
所以,我一般喜欢谁写的一个dict()为{},list(L)代替L[:]以及list()对[],tuple()对(),等等-只是一般的风格偏好发音的代码。当我在使用不同风格的现有代码库上工作时,或者当我在新项目中的队友具有强烈的偏好时,我当然可以接受(尽管对于队友来说,这不是不做些宣扬的尝试) ;-)。