Не уверен, что такое [['NSW' '87'] ['QLD' '49'] ['SA' '14'] ['VIC' '54'] ['WA' '19']]
, но я думаю, вы хотели сказать [['NSW', '87'], ['QLD', '49'], ['SA', '14'], ['VIC', '54'], ['WA', '19']]
.
Итак, учитывая:
>>> l = [['NSW', '87'], ['QLD', '49'], ['SA', '14'], ['VIC', '54'], ['WA', '19']]
Мы можем использовать выражения генератора:
>>> highest = max(item[1] for item in l)
>>> (print(item) for item in l if item[1] == highest)
['NSW', '87']
Или:
>>> highest = max(item[1] for item in l)
>>> for item in l:
... if item[1] == highest:
... print(item)
['NSW', '87']
Или используйте zip
:
>>> keys, values = zip(*l)
>>> highest = max(values)
>>> print([keys[values.index(highest)], highest])
['NSW', '87']
Используя timeit.timeit
(и удаляя print
каждого примера), мы получаем следующие значения:
1.819037475 # First Example
1.648459721 # Second Example
1.406044623 # Third Example
Вы должны использовать последний, который использует zip
, так как он быстрее, чем другие.