У меня есть следующий словарь, представляющий данные в формате json:
{'0': {'related_items': [6, 7],
'values': [0.8111071056538126, 0.8660254037844388]},
'1': {'related_items': [5, 8],
'values': [0.9999999999999998, 0.7071067811865475]},
'222': {'related_items': [], 'values': []},
'33': {'related_items': [], 'values': []},
'44': {'related_items': [99], 'values': [0.7071067811865475]},
'5': {'related_items': [1, 8],
'values': [0.9999999999999998, 0.7071067811865475]},
'6': {'related_items': [0, 7, 99],
'values': [0.8111071056538126, 0.936585811581694, 0.8111071056538126]},
'7': {'related_items': [0, 6, 99],
'values': [0.8660254037844388, 0.936585811581694, 0.8660254037844388]},
'8': {'related_items': [1, 5],
'values': [0.7071067811865475, 0.7071067811865475]},
'99': {'related_items': [44, 6, 7],
'values': [0.7071067811865475, 0.8111071056538126, 0.8660254037844388]}}
Я хочу отсортировать список related_items
по порядку списка values
(по убыванию): например, для элемента'0', списки будут упорядочены следующим образом: {'0': {'related_items': [7, 6], 'values': [0.8660254037844388,0.8111071056538126]} ...
for i, j in json_data.items():
r = j['related_items']
s = j['values']
if r:
sim_final, rel_final = (list(t) for t in zip(*sorted(zip(s, r),reverse=True)))
json_data[i]['values']=sim_final
json_data[i]['related_items']=rel_final
Ожидаемый результат:
{'0': {'related_items': [7, 6],
'values': [0.8660254037844388, 0.8111071056538126]},
'1': {'related_items': [5, 8],
'values': [0.9999999999999998, 0.7071067811865475]},
'222': {'related_items': [], 'values': []},
'33': {'related_items': [], 'values': []},
'44': {'related_items': [99], 'values': [0.7071067811865475]},
'5': {'related_items': [1, 8],
'values': [0.9999999999999998, 0.7071067811865475]},
'6': {'related_items': [7, 99, 0],
'values': [0.936585811581694, 0.8111071056538126, 0.8111071056538126]},
'7': {'related_items': [6, 99, 0],
'values': [0.936585811581694, 0.8660254037844388, 0.8660254037844388]},
'8': {'related_items': [5, 1],
'values': [0.7071067811865475, 0.7071067811865475]},
'99': {'related_items': [7, 6, 44],
'values': [0.8660254037844388, 0.8111071056538126, 0.7071067811865475]}}
Мой фактический диктат очень велик.Как я могу упростить цикл for
в приведенном выше коде?