我想知道为什么下面的Python代码
aa = []
for x in range(5):
bb = aa
print(bb)
bb.extend(['a','bb'])
print(bb)
结果:
[]
['a', 'bb']
['a', 'bb']
['a', 'bb', 'a', 'bb']
['a', 'bb', 'a', 'bb']
['a', 'bb', 'a', 'bb', 'a', 'bb']
['a', 'bb', 'a', 'bb', 'a', 'bb']
['a', 'bb', 'a', 'bb', 'a', 'bb', 'a', 'bb']
['a', 'bb', 'a', 'bb', 'a', 'bb', 'a', 'bb']
['a', 'bb', 'a', 'bb', 'a', 'bb', 'a', 'bb', 'a', 'bb']
第三行bb = aa
是否将bb
重置为aa
的值[]
?当仅将aa
应用于extend
时,为什么bb
也被扩展了?
这是否意味着bb = aa
不是在aa
中创建bb
的副本,而是仅引用aa
?我应该如何创建aa
的副本,而不是对aa
的引用?