Python-重命名字典键

发布于 2021-02-02 23:14:46

有没有一种方法可以重命名字典键,而无需将其值重新分配给新名称并删除旧名称键;而且没有迭代字典键/值?

对于OrderedDict,在保持键的位置的同时执行相同的操作。

关注者
0
被浏览
151
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    对于常规命令,可以使用:

    mydict[new_key] = mydict.pop(old_key)
    

    对于OrderedDict,我认为你必须使用一种理解来构建一个全新的。

    >>> 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中实现“重命名”,而不是尝试修改键,而是将值重新分配给新键并删除旧键。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看