在Python 3中,更改列表中值的最有效方法是什么?

use*_*296 2 python memory-efficient python-3.x

我正在学习Python,我试图以不同的方式更改列表.例如,如果我有名单这样的名称:

names = ["David", "Jake", "Alex"]
Run Code Online (Sandbox Code Playgroud)

我想在列表中添加名称"Carter",实现这一目标的最有效方法是什么?以下是我可以做的一些事情:

names.append("Carter")

names = names + ["Carter"]

names += ["Carter"]
Run Code Online (Sandbox Code Playgroud)

Yoa*_*ner 7

追加是最快的.以下是使用timeit模块构建小型配置文件的方法

import timeit
a = (timeit.timeit("l.append('Cheese')", setup="l=['Meat', 'Milk']"))
b = (timeit.timeit("l+=['Cheese']", setup="l=['Meat', 'Milk']"))
c = (timeit.timeit("append('Cheese')", setup="l=['Meat', 'Milk'];append = l.append"))
print ('a', a)
print ('b', b)
print ('c', c)
print ("==> " , (c < a < b))
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在python中,对方法append的访问占用了l.append本身的一半时间...

a 0.08502503100316972

b 0.1582659209962003

c 0.041991976962890476

==>是的