我遇到了一个问题,如这个link所描述的。在使用我输入的dict理解时
keys = [x for x in range(21)]
value = [0,0]
dict1 = {key: value for key in keys}
而不是:
keys = [x for x in range(21)]
value = [0,0]
dict1 = {key: list(value) for key in keys}
在前一种情况下,问题仍然存在。所有键值指向同一个列表。这一切为什么要发生?本质上,我不明白的是list(0,0)如何不将列表创建为[0,0]?
编辑:我理解列表(Arg)只需要一个参数。但是,在列表中运行列表意味着什么呢?
发布于 2015-05-28 20:02:02
list(x)
的意思是根据x的内容创建一个新的列表,而不是创建一个包含x
作为其唯一元素的新元素列表。value
的内容是两个数字(都是0),因此list(value)
生成了一个包含两个零的新列表。
在您的第一个示例中,没有创建任何新的列表;相同的列表value
被设置为每个键的值。
https://stackoverflow.com/questions/30515300
复制相似问题