sas*_*hab -1 python nested-lists
可能重复:
Python列表追加行为
为什么这段代码:
x = [[]]*3
x[0].append('a')
x[1].append('b')
x[2].append('c')
x[0]=['d']
print x
Run Code Online (Sandbox Code Playgroud)
打印[['d'],['a','b','c'],['a','b','c']]?
这是最好的解释一步一步:
>>> x = [[]]*3
>>> x
[[], [], []]
>>> x[0].append('a')
>>> x
[['a'], ['a'], ['a']]
>>> x[1].append('b')
>>> x
[['a', 'b'], ['a', 'b'], ['a', 'b']]
>>> x[2].append('c')
>>> x
[['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]
>>> x[0]=['d']
>>> x
[['d'], ['a', 'b', 'c'], ['a', 'b', 'c']]
第一个语句创建一个列表,其中包含对其中相同元素的三个引用.因此,当您修改第一个元素时,您还要修改第二个和第三个元素.因此,append语句为列表的每个元素添加一个数字.
| 归档时间: |
|
| 查看次数: |
3580 次 |
| 最近记录: |