我有以下字典,我想使用键以升序排序。
animMeshes = { "anim 0" : 23, "anim 32": 4, "anim 21" : 5, "anim 2" : 66, "anim 11" : 7 , "anim 1" : 5}
我尝试使用:
for mesh,val in sorted(animMeshes.items(), key=lambda t: t[0]):
print mesh
o / p:
anim 0
anim 1
anim 11
anim 2
anim 21
anim 32
我怎么能得到:
anim 0
anim 1
anim 2
anim 11
anim 21
anim 32
答案 0 :(得分:3)
对于您的具体情况,这可以起作用:
for mesh,val in sorted(animMeshes.items(), key=lambda t: int(t[0].split()[1])):
print mesh
为什么呢?因为你的钥匙都以'anim'开头,然后有一个数字......
我使用转化为int()
进行按数字排序的排序。
答案 1 :(得分:1)
您只需要根据数字部分的整数值拆分密钥和排序,就像这样
for mesh, val in sorted(animMeshes.items(), key=lambda t: int(t[0].split()[1])):
print mesh
<强>输出强>
anim 0
anim 1
anim 2
anim 11
anim 21
anim 32