Я хочу отсортировать список на основе второго списка, как в это сообщение о переполнении стека. В моем случае мой код пытается отсортировать объекты Chromo
по их соответствующим fitness_weights
, поэтому я попробовал решения в связанном сообщении:
def foobar():
...
chromolist = [x for _, x in sorted(zip(fitness_weights, chromolist))]
...
Выдает ошибку:
TypeError: '<' not supported between instances of 'Chromo' and 'Chromo'
Для отладки я пробовал:
def foobar():
...
try:
chromolist = [x for _, x in sorted(zip(fitness_weights, chromolist))]
except Exception as e:
print(fitness_weights)
print(chromolist)
print([i for i in zip(fitness_weights, chromolist)])
raise e
print('works fine')
...
Вывод:
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
works fine
[2630793242, 2662598634, 1204127226, 1218205610, 1224753838, 1212750850,
1212293610, 1221507266, 1269226518, 1363578674, 1209661338, 2674408754,
1179213986, 1209887778, 2281636710, 1906925334, 1156258126, 1287144442,
1218205610, 1256241498, 2926198286, 1533442630, 1587421406, 2685579290,
1203563674, 1205066274, 1181576990, 1188462746, 1127834446, 2295554650,
1216261042, 1193222146, 1191591394, 1206052810, 1206800842, 1213410890,
1202786310, 1230097202, 1277296358, 1218982810]
[Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object,
Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object,
Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object,
Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object,
Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object,
Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object,
Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object,
Chromo Object, Chromo Object, Chromo Object, Chromo Object, Chromo Object]
[(2630793242, Chromo Object), (2662598634, Chromo Object),
(1204127226, Chromo Object), (1218205610, Chromo Object),
(1224753838, Chromo Object), (1212750850, Chromo Object),
(1212293610, Chrom Object), (1221507266, Chromo Object),
(1269226518, Chromo Object), (1363578674, Chromo Object),
(1209661338, Chromo Object), (2674408754, Chromo Object),
(1179213986, Chromo Object), (1209887778, Chromo Object),
(2281636710, Chromo Object), (1906925334, Chromo Object),
(1156258126, Chromo Object), (1287144442, Chromo Object),
(1218205610, Chromo Object), (1256241498, Chromo Object),
(2926198286, Chromo Object), (1533442630, Chromo Object),
(1587421406, Chromo Object), (2685579290, Chromo Object),
(1203563674, Chromo Object), (1205066274, Chromo Object),
(1181576990, Chromo Object), (1188462746, Chromo Object),
(1127834446, Chromo Object), (2295554650, Chromo Object),
(1216261042, Chromo Object), (1193222146, Chromo Object),
(1191591394, Chromo Object), (1206052810, Chromo Object),
(1206800842, Chromo Object), (1213410890, Chromo Object),
(1202786310, Chromo Object), (1230097202, Chromo Object),
(1277296358, Chromo Object), (1218982810, Chromo Object)]
Что сбивает с толку, потому что:
- Все типы данных верны
- Функция работала корректно 22 раза
Как исправить?