我有一本字典
dict1={'A_11':2,'A_10':5,'A_3':11,'A_2':6}
我想按键排序得到
dict1_sorted={'A_2':6,'A_3':11,'A_10':5,'A_11':2}
我试过了,还是有问题
{'A_10': 5, 'A_11': 2, 'A_2': 6, 'A_3': 11}.
有什么建议吗?谢谢。
最佳答案
如果您使用的是 Python 3.6+,dict 是有序的,因此您可以:
dict1={'A_11':2,'A_10':5,'A_3':11,'A_2':6}
def f(k):
t = k.split('_')
return t[0], int(t[1])
print({k: dict1[k] for k in sorted(dict1, key=f)})
这个输出:
{'A_2': 6, 'A_3': 11, 'A_10': 5, 'A_11': 2}
如果您使用的是较早的 Python 版本,则可以将字典替换为 collections.OrderedDict
。
关于python - 按键对字典进行排序,其中键是字符串和数字的混合,然后使用排序的 key_values 创建一个新字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51767011/