我在python上真的很新。有了考试代码,我发现了一些奇怪的东西
这是我的代码。
cat_log = []
container = {}
for index in range(10) :
container["idx"] = index
cat_log.append(container)
print(cat_log)
我想要这样的结果:[{' idx' :0},{' idx' :1},{' idx' :2},{' idx' :3}]。 但是我的代码没有输出这个结果。 这样的事情:[{' idx' :3},{' idx' :3},{' idx' :3},{' idx' :3}] 我已经用谷歌搜索了为什么会这样,但我没有找到任何正确的想法。 什么错了,为什么?
答案 0 :(得分:0)
当您附加容器时,您没有复制,所以您只是反复添加对同一个字典的引用。你也在改变字典,你不能在字典中拥有相同键的多个值,它只是每次用当前索引覆盖idx。
相反,每次迭代都附加一个新字典。例如:
cat_log = []
for index in range(10) :
cat_log.append({"idx": index})
print(cat_log)