在Python中,我有一个长度为x的数组。
设array = 0,1,2,3,4,5
我想从上面的数组中得到如下结果: 1,2,3,4,5,0
所以基本上我不想跳过第一个项,在数组结束后循环它,并在跳过的最后一个项上停止。我是python的新手,所以我自己也搞不懂+谷歌搜索也没什么帮助。
请帮帮忙,非常感谢!
发布于 2012-12-14 09:03:37
使用slicing and append()。
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]可能是最糟糕的,因为它必须创建另一个丢弃列表对象。
发布于 2012-12-14 09:09:06
我会选择切片,但另一种选择(这对于使用collections.deque这样简单的东西通常是多余的)
小示例:
>>> 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])发布于 2012-12-14 09:24:06
e = [0, 1, 2, 3, 4, 5]
e.append(e.pop(0))为什么人们不立即考虑就地转换?
https://stackoverflow.com/questions/13871186
复制相似问题