Python中如何初始化包含列表的列表?
- 内容介绍
- 文章标签
- 相关推荐
本文共计204个文字,预计阅读时间需要1分钟。
错误示例:In [7]: l=[]* 3In [8]: l Out [8]: []In [9]: l [0] + append(1)In [10]: l Out [10]: [1, 1, 1]你得到的列表中包含3个元素,实际上这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], [], []]
- 使用列表推导式可以解决这个问题。
在交互式界面尝试各种语句是多么的重要!
本文共计204个文字,预计阅读时间需要1分钟。
错误示例:In [7]: l=[]* 3In [8]: l Out [8]: []In [9]: l [0] + append(1)In [10]: l Out [10]: [1, 1, 1]你得到的列表中包含3个元素,实际上这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], [], []]
- 使用列表推导式可以解决这个问题。
在交互式界面尝试各种语句是多么的重要!

