首先…
a = 1
b = a
b = 2
print a
毋庸置疑, 输出结果为1, 因为我们的拷贝是创建了一个新的值为1的整型对象, 然后将b指向这个对象, 所以之后对b的修改不会影响a
那么这个呢…
a = [1]
b = a
b[0] += 1
print(a)
这个的输出并不是[1], 而是[2]! 也就是说, 列表在拷贝的时候, 并不会新建一个对象!
而如果改成这样就不会影响了
a = [1]
b = []
b += a
b[0] += 1
print(a)
本文通过两个简单的Python代码示例,探讨了在Python中如何进行变量拷贝,特别是列表拷贝的机制。文章揭示了整型变量与列表在拷贝过程中的不同行为,并解释了背后的原因。
首先…
a = 1
b = a
b = 2
print a
毋庸置疑, 输出结果为1, 因为我们的拷贝是创建了一个新的值为1的整型对象, 然后将b指向这个对象, 所以之后对b的修改不会影响a
那么这个呢…
a = [1]
b = a
b[0] += 1
print(a)
这个的输出并不是[1], 而是[2]! 也就是说, 列表在拷贝的时候, 并不会新建一个对象!
而如果改成这样就不会影响了
a = [1]
b = []
b += a
b[0] += 1
print(a)
701

被折叠的 条评论
为什么被折叠?