我有一个像这样的结构
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)] ...}
我希望它按键排序,然后按每个元组的最后一个元素排序。 基本上,我想要这样的想法:
^{pr2}$我有一个列表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(…)
我希望有人能帮助我 谢谢你
我想你的问题是你的lambda函数,看起来索引太多了。在
不管怎样,由于
d['imagex']
将返回元组的列表,这意味着您可以用key = lambda x: x[2]
对其调用.sort(..)
。如下所示:您需要先对值排序,然后对键(项):
相关问题 更多 >
编程相关推荐