lst = ['a', 'b', 'c']
lst2=[lst for i in range(3)]
print(lst2)
lst2[0][0]='e'
print(lst2)
只想把列表的第改成e,但是实际运行每一行的第一个都成 e了,怎么解决啊
lst2 = [lst for i in range(3)]
lst是列表/数组。传递的不是值,是地址引用。可以使用list.copy()传值。
lst2 = [lst.copy() for i in range(3)]
要想解决, 直接做切片复制 lst 改成 lst[:]
lst = ['a', 'b', 'c']
lst2=[lst[:] for i in range(3)]
print(lst2)
lst2[0][0]='e'
print(lst2)