首页 > 解决方案 > 如何停止 Python 修改多个变量?

问题描述

当我尝试修改列表中的值时,它也在修改另一个列表中的单独值。我不相信这会是一个错误,但我想知道如何独立处理这些变量。

我已经尝试过对单个变量而不是列表进行此操作,并且不会出现此问题。我可以单独设置列表,但是当有大量列表时,这似乎是不必要的。

numbers = [1,2,3,4,5]
list_A = numbers
list_B = numbers

print("list A:",list_A)
print("list B:",list_B)
list_A[2] = 10
print("list A:",list_A)
print("list B:",list_B)

我希望输出:
list_A:[1, 2, 3, 4, 5]
list_B:[1, 2, 3, 4, 5]
list_A: [1, 2, 10, 4, 5]
list_B: [1 , 2, 3, 4, 5]

而是得到这个:
list_A:[1, 2, 3, 4, 5]
list_B: [1, 2, 3, 4, 5]
list_A: [1, 2, 10, 4, 5]
list_B: [1, 2 , 10, 4, 5]

两个列表都已修改的地方

标签: pythonpython-3.x

解决方案


numbers = [1,2,3,4,5]
list_A = numbers.copy()
list_B = numbers.copy()

print("list A:",list_A)
print("list B:",list_B)
list_A[2] = 10
print("list A:",list_A)
print("list B:",list_B)

这是python,所以你必须这样做。

有关详细信息,请参阅如何克隆或复制列表?


推荐阅读