错误示范: In [ 7 ]: l = [[]] * 3 In [ 8 ]: l Out [ 8 ]: [[], [], []] In [ 9 ]: l [ 0 ]. append ( 1 ) In [ 10 ]: l Out [ 10 ]: [[ 1 ], [ 1 ], [ 1 ]] 你得到的列表里包含的3个元素其实是3个引用,且指向同一个列表。
错误示范:
In [7]: l = [[]]*3In [8]: l
Out[8]: [[], [], []]
In [9]: l[0].append(1)
In [10]: l
Out[10]: [[1], [1], [1]]
- 你得到的列表里包含的3个元素其实是3个引用,且指向同一个列表。
正确示范:
In [11]: s = [[]*3 for i in range(3)]In [12]: s
Out[12]: [[], [], []]
In [13]: s[0].append(1)
In [14]: s
Out[14]: [[1], [], []]
- 使用列表推导式可以解决这个问题。
在交互式界面尝试各种语句是多么的重要!