Какой наиболее эффективный способ поиска вложенного списка в python?

#python #list #search #nested-lists

#python #Список #Поиск #вложенные списки

Вопрос:

Допустим, у меня есть вложенный цикл, в котором я перечислил результат по определенному предмету учащихся с именем, подобным:

 records = [[name, score]]
  

например, предположим, что у нас есть такой список:

 records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
  

Итак, здесь я хочу напечатать максимальное значение с именем?
Я все еще новичок в python, поэтому будет здорово, если вы объясните это простым способом.
Заранее спасибо <3

Комментарии:

1. max(records, key=lambda x: x[1]) ?

Ответ №1:

Существует несколько способов сделать это. Один из которых заключается в использовании встроенной функции max, которая находит максимальное значение своих аргументов. В данном случае массив. Поскольку мы хотим получить максимальное значение для оценки, нам нужно получить целое число из массива. Мы можем сделать это, указав ключевую функцию.

Мы можем сделать это с помощью анонимной функции lambda, подобной этой

 records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]

print(max(records, key=lambda x: x[1]))
  

Или мы можем использовать определенную функцию, подобную этой

 records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
def getScore(x):
    return x[1]
print(max(records,key=getScore))
  

Существует более простой или понятный способ сделать это. Использование библиотечного оператора и его функции item getter

 import operator

records = [['a', 67], ['b', 64], ['c', 63], ['d', 59]]
print(max(records,key=operator.itemgetter(1)))
  

Комментарии:

1. И не забывайте о operator.itemgetter 🙂

2. Ха, не знал об этом. Обновляю свой ответ, чтобы включить его: D Спасибо @revliscano

3. Что вы имеете в виду? Метки?

4. Я имею в виду оценку, забыл, что я написал оценку в основном сообщении, извините

5. print(max(records, key=lambda x: x[1])[0]) нравится это?