重命名字典键

  • 问题:
  • 有没有一种方法可以重命名字典键,而不必将其值重新指定为新名称并删除旧名称键;也不必遍历dict key/value?

  • 答案:
  • 对于常规dict,您可以使用:

    mydict[new_key] = mydict.pop(old_key)

    对于一个有序的dict,我认为你必须用一种理解力来构建一个全新的dict。在

    >>> OrderedDict(zip('123', 'abc'))
    OrderedDict([('1', 'a'), ('2', 'b'), ('3', 'c')])
    >>> oldkey, newkey = '2', 'potato'
    >>> OrderedDict((newkey if k == oldkey else k, v) for k, v in _.viewitems())
    OrderedDict([('1', 'a'), ('potato', 'b'), ('3', 'c')])

    正如这个问题所问的,修改键本身是不切实际的,因为dict键通常是不可变的对象,如数字、字符串或元组。在python中,不必尝试修改键,而是将值重新分配给新键并删除旧键。在