提问人:rishabh 提问时间:10/25/2021 更新时间:10/25/2021 访问量:39
追加两个列表会导致按引用调用
appending two lists results in call by reference
问:
在尝试使用各种元素制作多个列表时,我遇到了一个问题,即先前附加的元素也会发生变化。
import random
def randArr(length):
num = []
for i in range(length):
num.append(random.randint(-100, 100))
return num
l1 = []
l2 = []
for i in range(3):
l2.clear()
l2.append(randArr(1))
l1.append(l2)
print('l1', l1)
print('l2', l2)
print()
给
l1 [[[-8]]]
l2 [[-8]]
l1 [[[43]], [[43]]]
l2 [[43]]
l1 [[[-96]], [[-96]], [[-96]]]
l2 [[-96]]
我知道我可以替换第 12 行来代替,但是出于各种原因我需要使用 append。l2 = randArr(1)
关于如何解决这个问题的任何建议?
答: 暂无答案
评论
l2.clear
l2 = []
list.clear()
list
l1
l1.append(l2)
l1
.clear
l1 += l2
l2 = []
l2 = []
l1.append(l2.copy())