多变量分配显示意外值

时间:2019-04-25 21:59:40

标签: python

我通过使用多次赋值将这5个数组初始化为空值。我试图在每个数组中添加一个不同的值。但是,似乎所有数组值都显示相同的值。这怎么可能?

代码

arr1=arr2=arr3=arr4=arr5=[]

def test(arr,fruit):
arr.append(fruit)

test(arr1, "Apple")
test(arr2, "Anar")
test(arr3, "Orange")
test(arr4, "Fig")

print(arr1)
print(arr2)
print(arr3)
print(arr4)

输出

['Apple', 'Anar', 'Orange', 'Fig']
['Apple', 'Anar', 'Orange', 'Fig']
['Apple', 'Anar', 'Orange', 'Fig']
['Apple', 'Anar', 'Orange', 'Fig']

2 个答案:

答案 0 :(得分:2)

另一种方法是使用列表推导来进行多个分配,而无需创建对与

相同列表的引用
arr1, arr2, arr3, arr4, arr5 = [[] for _ in range(5)]

答案 1 :(得分:1)

那是因为所有这些变量都指向同一数组。相反,您想在单独的行上初始化每个人:

arr1 = []
arr2 = []
arr3 = []
arr4 = []