У меня есть структура, глядя, как этотсортировки списка кортежей в словаре
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)] ...}
, и я хотел бы, чтобы быть отсортированы по ключу, а затем последний элемент каждого кортежа. В принципе, я бы хотел somethink так:
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()' в два раза. – giuscri
* «не работает» * и * «все еще не работает» * не являются описаниями проблем, пожалуйста, дайте [mcve]. – jonrsharpe
@giuscri Да, я знаю, но словарь d не всегда одно и то же, в начале есть только 2 'imageX', но может быть 10 или 20 разных ключей 'imageX'. –