初始化数组数组:
M = [[]]*(24*60/5)
将数字2附加到M
M[50].append(2)
M中有什么?
...
[2]
[2]
[2]
[2]
[2]
[2]
[2]
[2]
...
M中的每个元素都是数组[2]
我错过了什么?我怀疑我最初初始化的每个[]
都是对内存中相同空间的引用。
答案 0 :(得分:5)
你做了创建一个数组数组。但是,您随后为其每个条目分配了相同的[]
。
并非每次调用[]
时它都会为您提供相同的数组 - 这就是您只调用[]
一次。
得到它?
答案 1 :(得分:4)
是的,你得到了它,正如Borealid指出的那样。
如果你想多次使用不同的列表,你可以这样做:
M = [[] for _ in range(24*60/5)]
_
只是一个常规变量名(变量可以以下划线开头),但它告诉读者代码“我是一个不重要的变量,没有特殊含义”。
答案 2 :(得分:0)
看看http://www.python.org/dev/peps/pep-0020/。
您喜欢使用的构造非常难以阅读并且“可读性很重要”。