我正在尝试创建一个字典列表,可以在循环中添加。然而,如果我使用
fromkeys
创建字典,则该列表成为“指针”的副本,而不是新列表。例如,
newdict = dict.fromkeys(range(10), [])
或
newdict = dict.fromkeys(range(10), list())
两者都产生相同的数据结构,即带有相同列表作为值对的字典。因此,当更新任何键时,例如 newdict [0] .append(100)
,相应的print newdict
输出如下:
{0: [100], 1: [100], 2: [100], 3: [100], 4: [100], 5: [100], 6: [100], 7: [100], 8: [100], 9: [100]}
有没有办法避免这种情况而不必在for循环中迭代?提前感谢。
newdict[0].append(100)
或者newdict[0] += [100]
,而不是newdict[0] = 100
。 - DSMnewdict[0]=100
会得到{0: 100, 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: []}
... - MattDMo