Python 在迭代时修改嵌套的dict

Python 在迭代时修改嵌套的dict,python,python-2.7,Python,Python 2.7,在dict上迭代时允许哪些操作 在字典中添加或删除条目时使用iteritems()可能会引发运行时错误或无法迭代所有条目。 () 因此,即使更改了dict的大小,也可以更改现有值吗? 例如,当我迭代键[1,2]时,可以 将[1][11][111][“data1”的值更改为“一” 完全删除[1][11] 添加[1][“十一”]={…} 如果不允许这样做,那么最佳做法是什么?我真的必须存储我想要操纵的值的路径,并在dict的副本中进行操纵吗?是否有其他映射类型可以使用,例如ElementTree

在dict上迭代时允许哪些操作

在字典中添加或删除条目时使用iteritems()可能会引发运行时错误或无法迭代所有条目。 ()

因此,即使更改了dict的大小,也可以更改现有值吗? 例如,当我迭代键[1,2]时,可以

  • 将[1][11][111][“data1”的值更改为“一”
  • 完全删除[1][11]
  • 添加[1][“十一”]={…}
如果不允许这样做,那么最佳做法是什么?我真的必须存储我想要操纵的值的路径,并在dict的副本中进行操纵吗?是否有其他映射类型可以使用,例如ElementTree

{
  1: {
    11: {
      111: {
        "data1": 1,
        "data2": 2
      }
    }
  },
  2: {
    22: {
      222: {
        "data1": 11,
        "data2": 22
      }
    }
  }
}

你所描述的所有操作都没有触及外部指令。它们完全可以完成

如果你做了类似的事情

for key in outer_dict:
    outer_dict[key] = something_different
那会触动外部的指令,但仍然可以。只要不在迭代的dict中插入或删除键,就不会触发重新灰化