2016-02-15 3 views
2

Я следующий список, созданный с использованием функции почтового индекса на два отдельных списках номеров:Индексация элементов в списке кортежей

[(20, 6), 
(21, 4), 
(22, 4), 
(23, 2), 
(24, 8), 
(25, 3), 
(26, 4), 
(27, 4), 
(28, 6), 
(29, 2), 
(30, 8)] 

Я хотел бы знать, если есть способ, чтобы перебирать это список и получить номер на LHS, который соответствует максимальному значению в RHS, то есть в этом случае я хотел бы получить 24 и 30, которые имеют значение 8 (максимальное значение RHS). Я пробовал:

## get max of RHS 
max_1 = max([i[1] for i in data]) 
## for max of LHR, index this location 
## on RHS column 
number = [i[1] for i in data].index(max_1) 

но он не работает.

+2

У Вас есть еще второй список? Тогда для 'max_1' вы можете просто взять максимум этого списка. Проще, чем получить его из уже зашифрованных списков. –

ответ

9

После:

max_1 = max([i[1] for i in data]) 

Try:

>>> number = [i[0] for i in data if i[1]==max_1] 
>>> number 
[24, 30] 
+0

Вы должны показать, откуда приходит max_1. Кроме того, распаковка 'i' может дать более понятное понимание списка. – user2357112

+0

Вам действительно не нужны скобки в вашем вызове 'max()'. – zondo

+0

@Martin: Спасибо, это сработало. max_1 - это максимальное значение столбца RHS – Spyros

Смежные вопросы