У меня есть список, и я хотел бы отсортировать кортежи в списке на основе второго индекса.
data = [[(7, -1), (8, 10), (9, 5), (10, 0.1), (11, -0.4)], [(7, -3), (8, -1), (9, 2), (10, 0.4), (11, -0.2)]]
sorted_by_second = sorted(data, key=lambda tup: tup[1])
print(sorted_by_second)
, что приводит к:
[[(7, -3), (8, -1), (9, 2), (10, 0.4), (11, -0.2)], [(7, -1), (8, 10), (9, 5), (10, 0.1), (11, -0.4)]]
Но я пытаюсь чтобы получить:
[[(7, -1), (11, -0.4), (10, 0.1), (9, 5), (8, 10)], [(7, -3), (8, -1), (11, -0.2), (10, 0.4), (9, 2)]]
И я также хочу извлечь ячейки для особого условия:
- , когда второй индекс в ячейках равен -1
Возьмите [(7, -1), (8, 10), (9, 5), (10, 0.1), (11, -0.4)]
, например, (7, -1)
- это тот, который мне нужен.
, когда значения второго индекса являются наименьшими и вторыми наименьшими.
Возьмем, например, [(7, -1), (8, 10), (9, 5), (10, 0.1), (11, -0.4)]
, после сортировки -> [(7, -1), (11, -0.4), (10, 0.1), (9, 5), (8, 10)]
-> ясно видно, что для второго индекса в кортежи 0,1 и 5 - это наименьшие и вторые наименьшие положительные значения. Поэтому (10, 0.1), (9, 5)
- это то, что я хочу.
Как:
[[(7, -1), (10, 0.1), (9, 5)], [(8, -1), (10, 0.4), (9, 2)]]
Как я могу это сделать?