Discuss / Python / 关于数据结构赋值的问题

关于数据结构赋值的问题

Topic source

侬·格兰

#1 Created at ... [Delete] [Delete and Lock User]
a = [1,2,3]
b = a
a.append(4)
print(a,b)

结果为:

[1,2,3,4] [1,2,3,4]

犹如之前提到的, a和b均为指针, 

 在直接修改元素时, 如b[0] = 2, 那么b会指向一个新开辟的空间, 拷贝a中元素并对相关元素修改

如果调用该对象的成员函数, 则a-b代表的是同一个内存空间, 也就是说会导致a改变的同时, b的值也会同时改变

如果希望达到和C语言同样的赋值效果, 需要采用copy的方式(如b=a[:], 或copy函数)


  • 1

Reply