在迭代dict时允许哪些操作?
在字典中添加或删除条目时使用iteritems()可能会引发RuntimeError或无法迭代所有条目。 (https://docs.python.org/2/library/stdtypes.html#dict.iteritems)
即使这会改变字典的大小,也可以更改现有值吗? 例如,当我遍历键[1,2]可以
时如果不允许这样做,最佳做法是什么?我是否真的必须存储我想要操作的值的路径并在dict的副本中进行操作?我还可以使用其他映射类型,例如ElementTree吗?
{
1: {
11: {
111: {
"data1": 1,
"data2": 2
}
}
},
2: {
22: {
222: {
"data1": 11,
"data2": 22
}
}
}
}
答案 0 :(得分:1)
您描述的所有操作都没有触及外部字典。他们完全没事。
如果您做了类似
的事情for key in outer_dict:
outer_dict[key] = something_different
将触及外部字典,但它仍然可以。只要你没有插入或删除你正在迭代的词典中的键,你就不会触发重复。