查看get-pip.py
上的pip
安装程序this page时,我注意到了一些我不熟悉的语法。
在文件的第17422行找到,这是一行:
packages += ["setuptools"]
我很困惑为什么它使用奇怪的+=
语法而不是.append()
方法。我从来没有见过这种将字符串添加到字符串列表中的方式
以前,我想知道为什么在这里使用它。为什么不读这行:
packages.append("setuptools")
我怀疑这是出于兼容性原因,或者它是历史的工件。有谁知道这种语法的起源或原因?如果没有,我在哪里可以了解更多相关信息?
答案 0 :(得分:0)
性能差异基本上很小。
In [9]: %%timeit
...: packages=[]
...: packages+=["setuptools"]
...:
10000000 loops, best of 3: 155 ns per loop
In [10]: %%timeit
....: packages=[]
....: packages.append("setuptools")
....:
10000000 loops, best of 3: 123 ns per loop
+=
派上用场的方法是,如果您想附加多个项目而不附加下列列表:
In [11]: packages=[]
In [12]: packages += ["setuptools","other"]
In [13]: packages
Out[13]: ['setuptools', 'other']
In [14]: packages=[]
In [15]: packages.append(["setuptools","other"])
In [16]: packages
Out[16]: [['setuptools', 'other']]
使用extend v +=
:
In [52]:
%%timeit packages=[]
packages.extend( ["setuptools","other"])
....:
10000000 loops, best of 3: 173 ns per loop
In [53]:
%%timeit packages=[]
packages += ["setuptools","other"]
....:
10000000 loops, best of 3: 130 ns per loop