因此,我试图根据列表中0的位置交换python列表中的2个元素,然后比较原始列表和交换后的列表。我不希望它是就地排序,因此创建了一个名为a的新数组,该数组等于list。但是,在执行我的原始列表下方给出的代码后,由于交换,我的原始列表也将更改。
所以,我的代码由:]提供
list=[1,2,3,8,0,4,7,6,5] a=list def move_up(list): n=list.index(0) if n>2: list[n],list[n-3]=list[n-3],list[n] return list
输出由]给出>
print(move_up(a)) -> [1,0,3,8,2,4,7,6,5] list -> [1,0,3,8,2,4,7,6,5]
预期输出为
print(move_up(a)) -> [1,0,3,8,2,4,7,6,5] list -> [1,2,3,8,0,4,7,6,5]
感谢您帮助我解决此问题。
因此,我试图根据列表中0的位置交换python列表中的2个元素,然后比较原始列表和交换后的列表。我不希望它是就地排序,因此...
您可以在n
和n - 3
处分割列表,并将分割后的列表和交换的项目合并到新列表中:
def move_up(lst):
n = lst.index(0)
if n > 2:
return [*lst[:n - 3], lst[n], *lst[n - 2: n], lst[n - 3], *lst[n + 1:]]
return lst
首先,不要将列表命名为“列表”。 “列表”是python中的关键字。要解决您的问题,您应该-->
a=ls.copy()