Как отсортировать массив по наибольшему числу

arraydata = [
     ["bob", 56],
     ["Jan", 12],
     ["Foo", -83]
]

Я хочу, чтобы получить имя и номер на дисплее наибольшего числа.

output:
bob
56

Я пытался напечатать (max (arraydata))

Но это не сработало. Какие-либо предложения? я использую питон

Всего 3 ответа

Автоматический диспенсер мыльной пены от xiaomi.


Вы можете просто использовать key в max питонов:

max(arraydata, key=lambda x: x[1])
#['bob', 56]

Обратите внимание, что при заполнении max всего вложенного списка первые критерии упорядочения будут первыми элементами в подсписках, и, следовательно, упорядочение будет лексикографическим.

Вот почему bob первом месте (также по совпадению):

max(arraydata)
# ['bob', 56]

Это объясняется с помощью:

[ord(i[0]) for i in ["bob", "Jan", "Foo"]]
# [98, 74, 70]

Если вы просто хотите самое высокое, вы можете сделать:

max(arraydata, key=lambda x: x[1])
#['bob', 56]

Если вам нужны несколько топов, вы также можете отсортировать:

sorted(arraydata, key=lambda x: x[1], reverse=True)
#[['bob', 56], ['Jan', 12], ['Foo', -83]]

Ответ yata в порядке, но если вы хотите отсортировать список массивов по наибольшему количеству, попробуйте это:

from operator import itemgetter
a.sort(key=itemgetter(1), reverse=True)
print(a[0])
#['bob', 56]

Всегда самое высокое число находится на нулевом индексе, если вы используете обратный True.


Есть идеи?

10000