所以我试图编写一个非常基本的函数,可以在列表中的每个元素之前移动一个索引。而且我认为我实际上非常接近我想要的结果。
例如,如果列表是
l = [1, 2, 4, 5, 'd']
之后我希望它像那样
l = [2, 4, 5, 'd', 1]
我的代码的现实
l = [2, 4, 5, 1, 1]
这是我的代码,我不知道在经过多次随机尝试更改代码之后发生了什么......
提前谢谢你们!
def cycle(input_list):
count = 0
while count < len(input_list):
tmp = input_list[count - 1]
input_list[count - 1] = input_list[count]
count+=1
答案 0 :(得分:9)
你可以这样做(就地):
l.append(l.pop(0))
以功能形式(制作副本):
def cycle(l):
ret = l[:]
ret.append(ret.pop(0))
return ret
答案 1 :(得分:2)
作为一名python开发人员,我真的无法拒绝输入这个内容
newlist = input[start:] + input[:start]
其中start
是您必须轮换列表的数量
前:
input = [1,2,3,4]
您希望按2
,start = 2
input[2:] = [3,4]
input[:2] = [1,2]
newlist = [3,4,1,2]
答案 2 :(得分:1)
这是我要做的。获取列表的第一项,删除它,然后将其添加回最后。
def cycle(input_list):
first_item = input_list.pop(0) #gets first element then deletes it from the list
input_list.append(first_item) #add first element to the end
答案 3 :(得分:0)
您可以使用while
或for
语句执行此操作。
使用for
:
newList = []
for index in range(1, len(list)):
newList.append(list[index])
newList.append(list[0])
使用while
:
newList = []
index = 1
while index < len(list):
newList.append(list[index])
index += 1
newList.append(list[0])
您可以将任何列表向左移动一个元素:)
示例:
def move(list):
newList = []
for index in range(1, len(list)):
newList.append(list[index])
newList.append(list[0])
return newList
list = [1, 2, 3, 4, 5, 'd']
list = move(list)
print(list)
>>>[2, 3, 4, 5, 'd', 1]