【发布时间】:2016-12-15 19:33:33
【问题描述】:
为什么在下面的示例中,当我设置 names = [] 时,元组 t 没有改变,但是当我向 names 列表添加新值时,改变会反映出来?
看起来tuple 最初是在引用该列表,因此任何更改都会反映在元组对象中,但清空它看起来像是创建了一个新副本。
>>> names = ['Mark','Hary']
>>> t = (names,'Lauri')
>>> t
(['Mark', 'Hary'], 'Lauri')
>>> names.append('Donna')
>>> names
['Mark', 'Hary', 'Donna']
>>> t
(['Mark', 'Hary', 'Donna'], 'Lauri')
>>> names = []
>>> names
[]
>>> t
(['Mark', 'Hary', 'Donna'], 'Lauri')
【问题讨论】:
-
通过[pythontutor]运行它(pythontutor.com/…这对于可视化这类事情非常有用。
-
该死,为什么我永远无法正确显示 pythontutor 链接... :(
标签: python list python-3.x tuples