在python列表中交换元素,同时保留初始列表和交换列表

所以我试图根据列表中0的位置交换python列表中的2个元素,然后比较原始列表和交换后的列表。我不希望它是就地排序,因此创建了一个名为a的新数组,该数组等于list。但是,在执行我的原始列表下面给出的代码后,由于交换,我的代码也将更改。

所以,我的代码是:

list=[1,2,3,8,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,5]

list
-> [1,5]

预期输出为

print(move_up(a))
-> [1,5]

预先感谢您帮助我解决此问题。

b50409346 回答:在python列表中交换元素,同时保留初始列表和交换列表

首先,不要将列表命名为“列表”。 “列表”是python中的关键字。要解决您的问题,您应该--

a=ls.copy()

如果不这样做,则列表“ a”中所做的任何更改都会反映在原始列表中。

代码

ls=[1,2,3,8,4,7,6,5]
a=ls.copy()
def move_up(list1):
    n=list1.index(0)
    if n>2:
        list1[n],list1[n-3]=list1[n-3],list1[n]
    return list1

输出

>>print(move_up(a))
[1,5]

>>print(ls)
[1,5]
本文链接:https://www.f2er.com/3163583.html

大家都在问