在Python中,我们有两种方法可以连接列表:
- lst.extend(another_lst)
- lst += another_lst
我以为使用extend
比使用+=
更快,因为它重用了列表而不是使用另外两个创建新列表。
但是当我用timeit
进行测试时,结果表明+=
更快。
>>> timeit('l.extend(x)', 'l = range(10); x = range(10)')
0.16929602623
>>> timeit('l += x', 'l = range(10); x = range(10)')
0.15030503273
>>> timeit('l.extend(x)', 'l = range(500); x = range(100)')
0.805264949799
>>> timeit('l += x', 'l = range(500); x = range(100)')
0.750471830368
timeit
中的代码有问题吗?
+=
需要创建一个新列表?你是不是把它和+
混淆了? - kennytmL
或'li
作为示例列表的名称吗?在某些字体中,l
看起来像1
。 - tshepang+=
运算符重载的答案链接:https://dev59.com/Q3E95IYBdhLWcg3wWMlQ#2347423。 - Scott Griffiths