gpt4 book ai didi

python - 通过在列表的开头而不是尾部添加来扩展 python 列表的最佳解决方案?

转载 作者:太空狗 更新时间:2023-10-29 17:21:38 25 4
gpt4 key购买 nike

你有

x = ['a', 'b', 'c']
y = [1, 2, 3]

并想在 x 的开头插入列表 y:

x = [1, 2, 3, 'a', 'b', 'c']

在 Python 中执行此操作的最佳解决方案是什么?

最佳答案

>>> x = ['a', 'b', 'c']
>>> y = [1, 2, 3]
>>> x = y + x

对于较小的输入大小,这个简单的解决方案的运行速度是使用 deque 的解决方案的两倍:

$ cat x1.py 
for i in range(1000000):
x = ['a', 'b', 'c']
y = [1, 2, 3]
x = y + x

$ cat x2.py
from collections import deque
for i in range(1000000):
d = deque(['a', 'b', 'c'])
d.extendleft(reversed([1, 2, 3]))

$ time python x1.py

real 0m1.912s
user 0m1.864s
sys 0m0.040s

$ time python x2.py

real 0m5.368s
user 0m5.316s
sys 0m0.052s

但是,对于更大尺寸的输入,它会变得更慢:

>python -m timeit -s "y = range(100000)" "x = list(xrange(10000000)); y+x"
10 loops, best of 3: 229 msec per loop

>python -m timeit -s "from collections import deque; y = range(100000)" "d = deque(xrange(10000000)); d.extendleft(reversed(y))"
10 loops, best of 3: 178 msec per loop

关于python - 通过在列表的开头而不是尾部添加来扩展 python 列表的最佳解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com