哪个更pythonic?
list.append(1)
Run Code Online (Sandbox Code Playgroud)
要么
list += [1]
Run Code Online (Sandbox Code Playgroud)
pts*_*pts 59
list.append(1) 更快,因为它不会创建临时列表对象.
ism*_*ail 17
这是两个不同的操作,你正在做什么+ =是扩展操作.以下是Python文档对此的说法:
list.append(x):将一个项添加到列表的末尾; 相当于[len(a):] = [x].
list.extend(L):通过附加给定列表中的所有项来扩展列表; 相当于[len(a):] = L.
所以在+ =你提供一个列表,在附加你只需添加一个新元素.
既然也有
list.extend(l)
Run Code Online (Sandbox Code Playgroud)
我会使用它附加给定列表的所有元素
list.append(1)
Run Code Online (Sandbox Code Playgroud)
为了对称和可读性的缘故.
虽然这里的大多数人都喜欢附加选项,但我个人更喜欢另一个,因为它看起来更好,即使它可能更慢(或者可能是它的优化).
美丽胜过丑陋.
当你编写很多Python代码时,我通常不会看到这样的东西:
list.append(1)
Run Code Online (Sandbox Code Playgroud)
它更像是这样的:
somecollectionname.append(anotherelementname+5*10)
Run Code Online (Sandbox Code Playgroud)
至少对我来说,看到它更好:
somecollectionname += [anotherelementname+5*10]
Run Code Online (Sandbox Code Playgroud)
因为它很容易识别您正在添加到列表中.话虽如此,我有时会发现自己使用这两种形式.
| 归档时间: |
|
| 查看次数: |
5549 次 |
| 最近记录: |