假设我有一个清单:
[a,b,c,d,e,f]
给定一个索引,比如3,什么是以前删除所有内容的pythonic方法 从列表前面开始的索引,然后将其添加到后面。
因此,如果给我索引3,我想将列表重新排序为 [d,e,f,a,b,c]
答案 0 :(得分:4)
>>> l = ['a', 'b', 'c', 'd', 'e', 'f']
>>>
>>> l[3:] + l[:3]
['d', 'e', 'f', 'a', 'b', 'c']
>>>
或将其带入一个功能:
>>> def swap_at_index(l, i):
... return l[i:] + l[:i]
...
>>> the_list = ['a', 'b', 'c', 'd', 'e', 'f']
>>> swap_at_index(the_list, 3)
['d', 'e', 'f', 'a', 'b', 'c']
答案 1 :(得分:3)
使用切片操作 例如,
myList = ['a', 'b','c', 'd', 'e', 'f']
myList[3:] + myList[:3]
给出
['d', 'e', 'f', 'a', 'b', 'c']
答案 2 :(得分:2)
def foo(myList, x):
return myList[x:] + myList[:x]
应该做的伎俩。
这样称呼:
>>> aList = ['a', 'b' ,'c', 'd', 'e', 'f']
>>> print foo(aList, 3)
['d', 'e', 'f', 'a', 'b', 'c']
编辑哈哈所有答案都是一样的......
答案 3 :(得分:1)
这是sdolan所说的pythonic方式,我只能添加内联方式:
>>> f = lambda l, q: l[q:] + l[:q]
所以,您可以使用:
>>> f([1,2,3,4,5,6], 3)
[4, 5, 6, 1, 2, 3]