+5 投票
分类:学习问题 | 用户: 7 4 (380 分)

3 个回答

+1 投票
用户: 10 8 4 (2.7k 分)
采纳于 用户:
 
已采纳
list2=list1是直接把list1赋值给list2,之后两个列表共用一个地址

所以改赋值语句就好了

众所周知一个个加进list2肯定可以

简单写法:list2=list1[:]
用户: 10 8 4 (2.7k 分)
至于为什么直接赋值会共用一个地址
因为list的本质是一个指向列表首位的指针,指针通过访问连续的地址访问list的各个元素,指针的“值”就是地址。
∴你把list1的值赋给list2,就是也给list2同样的一个地址…剩下的你懂的√
+1 投票
用户: 6 5 2 (2.0k 分)

python里list1=list2的意思是两个列表等价,占用同一个内存空间,和a = b不一样,这个是赋值。列表的话可以改成list2 =list(list1),给2建设一个新列表。

list1 = ['A', 'B']
list2 = list(list1)
list2.append('C')
print(list1)
print(list2)
+1 投票
用户: 7 5 4 (1.6k 分)
你这个相等是创建了一个等价列表,,所以以后所有的操作对两个列表是等价操作的

应该再进行列表创建,比如

LIST2=list(LIST1)

或者

list1=[]

for i in range(len(list))

    list1[i]=list[i]

这样实现了创建一个新的列表,两个列表没有可以重复的部分
欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...