首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python开始计数长度为x的数组,从第二项开始,直到第一项结束

Python开始计数长度为x的数组,从第二项开始,直到第一项结束
EN

Stack Overflow用户
提问于 2012-12-14 09:01:09
回答 6查看 2.8K关注 0票数 1

在Python中,我有一个长度为x的数组。

设array = 0,1,2,3,4,5

我想从上面的数组中得到如下结果: 1,2,3,4,5,0

所以基本上我不想跳过第一个项,在数组结束后循环它,并在跳过的最后一个项上停止。我是python的新手,所以我自己也搞不懂+谷歌搜索也没什么帮助。

请帮帮忙,非常感谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-12-14 09:03:37

使用slicing and append()

代码语言:javascript
复制
lst = [0, 1, 2, 3, 4, 5]
new_lst = lst[1:]
new_lst.append(lst[0])

您也可以使用new_lst.extend(lst[:1]),但是当头切片是单个元素时,append(lst[0])可能稍微更有效一些,因为您不必构造另一个临时列表来包装单个值。但是,与extend()版本相比,lst[1:] + list[:1]可能是最糟糕的,因为它必须创建另一个丢弃列表对象。

票数 5
EN

Stack Overflow用户

发布于 2012-12-14 09:09:06

我会选择切片,但另一种选择(这对于使用collections.deque这样简单的东西通常是多余的)

小示例:

代码语言:javascript
复制
>>> e =  [0, 1, 2, 3, 4, 5]
>>> from collections import deque
>>> d = deque(e)
>>> d
deque([0, 1, 2, 3, 4, 5])
>>> d.rotate(1)
>>> d
deque([5, 0, 1, 2, 3, 4])
>>> d.rotate(-2)
>>> d
deque([1, 2, 3, 4, 5, 0])
票数 2
EN

Stack Overflow用户

发布于 2012-12-14 09:24:06

代码语言:javascript
复制
e =  [0, 1, 2, 3, 4, 5]

e.append(e.pop(0))

为什么人们不立即考虑就地转换?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13871186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档