在Python中扩展列表时的一些奇怪行为

时间:2019-04-11 07:08:33

标签: python list extend

我想知道为什么下面的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的引用?

0 个答案:

没有答案