Python列表基本操作

时间:2016-04-01 10:52:16

标签: python python-3.x

所以我试图编写一个非常基本的函数,可以在列表中的每个元素之前移动一个索引。而且我认为我实际上非常接近我想要的结果。

例如,如果列表是

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

4 个答案:

答案 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]

您希望按2start = 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)

您可以使用whilefor语句执行此操作。 使用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]