gpt4 book ai didi

Python:使数组的最后一项成为第一项

转载 作者:太空狗 更新时间:2023-10-29 22:00:51 24 4
gpt4 key购买 nike

这是一个很简单的问题,但我似乎还没有找到满意的答案。

在 Python 中,最好的方法是让列表的最后一项成为“插入”列表其余部分的第一项。

做的事情:

>>> a=[1,2,3,4]
>>> a[?????]
[4, 1, 2, 3]

我知道我总是可以玩 len,列表连接...

>>> a=[1,2,3,4]
>>> [a[len(a)-1]] + a[0:len(a)-1]
[4, 1, 2, 3]

但这看起来不对......“Pythonic”,如果你可以的话

提前谢谢你。

最佳答案

切片比这更聪明;您可以使用 索引从末尾开始计数:

a[-1:] + a[:-1]

演示:

>>> a=[1,2,3,4]
>>> a[-1:] + a[:-1]
[4, 1, 2, 3]

这适用于将任意数量的元素移到前面:

>>> a[-2:] + a[:-2]
[3, 4, 1, 2]

像这样使用切片在速度上与使用 .insert() + .pop()(在一个简短列表中)相当:

>>> timeit.timeit('a[-1:] + a[:-1]', 'a=[1,2,3,4]')
0.59950494766235352
>>> timeit.timeit('a.insert(0,a.pop(-1))', 'a=[1,2,3,4]')
0.52790379524230957

但如果您需要移动多个元素,则胜出:

>>> timeit.timeit('a[-2:] + a[:-2]', 'a=[1,2,3,4]')
0.58687901496887207
>>> timeit.timeit('a.insert(0,a.pop(-1));a.insert(0,a.pop(-1))', 'a=[1,2,3,4]')
1.0615170001983643

关于Python:使数组的最后一项成为第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12845112/

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