Получение 3-х верхних чисел в списке из infile — python

#python

#python

Вопрос:

Пример файла — «имя файла = «люди» [Имя, возраст]
как мне получить 3 самых старых человека из моего файла?

 ["Susan", "34"],
["Mark", "45"],
["Richard", "77"],
["Alex", "5"],
["Karen", "66"]
  

Я пытался использовать

 for i, a in enumerate(people):
  

хотя он выводит для меня индексы, он также разбивает список и создает новые строки для каждой подстроки.

 people[1] 
  

дало бы мне подстроку для age, но я не знаю, как сравнить ее с другими индексами.

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

1. можете ли вы немного прояснить infile…

2. a[1] был бы возраст

3. Содержимое в самом верхнем сегменте кода не похоже на обычный inifile. Кроме того, ваша версия файла смешивает » и » как символы кавычек, или это была ошибка при ее записи?

4. Да, одинарная кавычка должна быть двойной, это была просто ошибка при ее записи.

5. Содержит ли файл буквально скобки и кавычки?

Ответ №1:

Я предполагаю, что вам нужны 3 самых старых человека в списке списка:

 a=[["Susan", "34"],
['Mark', "45"],
['Richard', "77"],
["Alex", "5"],
["Karen", "66"]]
a.sort(reverse=True,key=lambda x:int(x[1]))
a[:3]
  

Ответ №2:

То же самое с использованием operator

 import operator
a=[["Susan", "34"],
['Mark', "45"],
['Richard', "77"],
["Alex", "5"],
["Karen", "66"]]
a.sort(key=operator.itemgetter(1), reverse=True)
a[:3]