如何重命名字典键以遵循顺序?
How to rename dictionary keys to follow sequential order?
我的代码处理字典,大多数字典采用以下格式:
#Default
d = {0:'a', 1: 'b', 2:'c', 3:'d', 4: 'e', 5:'f', 6:'g', 7:'h', 8:'i', 9:'j', 10:'k'}
然而,在某些情况下,字典会遗漏键值对并采用以下格式:
d1 = {0:'a', 1: 'b', 2:'c', 3:'d', 4: 'e', 6:'g', 7:'h', 8:'i', 9:'j', 10:'k'}
d2 = {1: 'b', 2:'c', 4: 'e', 6:'g', 7:'h', 8:'i', 9:'j'}
我如何重新排列这些词典中的键以遵循下面预期输出中所示的顺序格式?
expected1 = {0:'a', 1: 'b', 2:'c', 3:'d', 4: 'e', 5:'g', 6:'h', 7:'i', 8:'j', 9:'k'}
expected2 = {0: 'b', 1:'c', 2: 'e', 3:'g', 4:'h', 5:'i', 6:'j'}
一个简单的字典理解:
d2 = {i: v for i, v in enumerate(d2.values())}
正如Ma0 在评论中所说,列表会更合适。您可以将列表检索为 d1.values()
.
我的代码处理字典,大多数字典采用以下格式:
#Default
d = {0:'a', 1: 'b', 2:'c', 3:'d', 4: 'e', 5:'f', 6:'g', 7:'h', 8:'i', 9:'j', 10:'k'}
然而,在某些情况下,字典会遗漏键值对并采用以下格式:
d1 = {0:'a', 1: 'b', 2:'c', 3:'d', 4: 'e', 6:'g', 7:'h', 8:'i', 9:'j', 10:'k'}
d2 = {1: 'b', 2:'c', 4: 'e', 6:'g', 7:'h', 8:'i', 9:'j'}
我如何重新排列这些词典中的键以遵循下面预期输出中所示的顺序格式?
expected1 = {0:'a', 1: 'b', 2:'c', 3:'d', 4: 'e', 5:'g', 6:'h', 7:'i', 8:'j', 9:'k'}
expected2 = {0: 'b', 1:'c', 2: 'e', 3:'g', 4:'h', 5:'i', 6:'j'}
一个简单的字典理解:
d2 = {i: v for i, v in enumerate(d2.values())}
正如Ma0 在评论中所说,列表会更合适。您可以将列表检索为 d1.values()
.