Несмотря на то, что ваши усилия по использованию первого таймера довольно впечатляющие, вы ничего не можете сделать здесь ... Следите за именем WHILE, отслеживая максимальное значение!Я уверен, что это можно сделать по-вашему, но могу ли я предложить альтернативу?
import operator
Давайте прочитаем в файле, как я сделал.Это хорошая практика, этот метод обрабатывает закрытие файла, которое может стать причиной многих проблем, если не будет выполнено правильно.
with open('/Users/abhishekbabuji/Desktop/example.txt', 'r') as fh:
lines = fh.readlines()
Теперь, когда у меня есть каждая строка в списке с именем lines
, он также имеет этораздражает \n
в нем.Давайте заменим это пустым пробелом ''
lines = [line.replace("\n", "") for line in lines]
Теперь у нас есть такой список.['Name1, Value1', 'Name2, Value2'..]
Что я собираюсь сделать сейчас, так это для каждого строкового элемента в моем списке взять первую часть в качестве ключа, а целочисленную часть второй части в качестве значения для моего словаря с именем example_dict
.Так что в 'Name1, Value1'
, Name1
- это элемент в индексе 0
, а Name2
- это мой элемент в индексе 1
, когда я превращаю его в список, как я сделал ниже, и добавляю пару ключ-значение всловарь.
example_dict = {}
for text in lines:
example_dict[text.split(",")[0]] = int(text.split(",")[1])
print(example_dict)
Дает:
{'Juan': 27, 'Joe': 16, 'Mike': 29, 'Roy': 10}
Теперь, получите ключ со значением max и распечатайте его.
largest_hour = max(example_dict.items(), key=operator.itemgetter(1))[1]
highest_key = []
for person, hours in example_dict.items():
if hours == largest_hour:
highest_key.append((person, hours))
for pair in highest_key:
print('Person with largest hours is:', pair[0])