【发布时间】:2016-09-28 08:05:51
【问题描述】:
我有一个像这样的结构
d= { 'image0' : [(image0, image1, 31.58), (image0, image2, 31.56), (image0, image3, 54.65)], 'image2' : [(image0, image2, 31.56), (image1, image2, 45.87), (image2, image3, 14.25)] ...}
我希望它按键排序,然后按每个元组的最后一个元素排序。 基本上,我想要这样的想法:
d= { 'image0' : [(image0, image2, 31.56), (image0, image1, 31.58), (image0, image3, 54.65)], 'image2' : [(image2, image3, 14.25), (image0, image2, 31.56),(image1, image2, 45.87)] ...}
我有一个列表 liste_im=[image0, image2] 所以我写了这个:
a={}
for i in range(len(liste_im)):
a=sorted(d[str(liste_im[i])], key=lambda x: x[1][2])
但它不起作用:它给了我这个结果:
[(image0, image2, 31.56), (image2, image1, 45.87), (image2, image3, 14.25)]
,所以我尝试了这个:
a=d.items()
for i in range(len(liste_im)):
a.sort(key=lambda x:x[1][i][2])
它给了我这个:
[('image0',[(image0, image2, 31.56), (image0, image1, 31.58), (image0, image3, 54.65)]), ('image2',[(image2, image3, 14.25), (image0, image2, 31.56),(image1, image2, 45.87)])]
只是我字典中的一个列表,但没有排序,因为有 a.sort(...)
我希望有人可以帮助我 谢谢
【问题讨论】:
-
您可以通过拨打
.sort()两次来做到这一点。 -
"doesn't work" 和 "still not working" 不是问题描述,请给minimal reproducible example。
-
@giuscri 是的,我知道,但字典 d 并不总是相同的东西,一开始只有 2 个 'imageX' 但可以有 10 或 20 个不同的键 'imageX'。
标签: python list sorting dictionary tuples