Как написать программу, которая читает файл .txt, содержащий слова с цифрами в отдельном столбце, и печатает слово с наибольшим номером? - PullRequest
0 голосов
/ 10 октября 2019

Я очень новичок в кодировании, так что это все, что у меня есть сейчас. Я сталкиваюсь с проблемами, пытаясь выбрать наибольшее число и распечатать слово, которое соответствует ему.

Редактировать: я также должен написать код, который также игнорирует символ '#' и все, что идет после него.

text = open('heroes.txt', 'r')
for line in sorted(text, key = lambda line: line.split()[1]):
    if not '#' in line:
        line.isalnum() or line == '_'
        continue

Это текстовый файл ссписки

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Исходя из ответа SuperStew, изменено, чтобы сделать его немного более интуитивным для новичка. Добавлены комментарии.

text = open('heroes.txt', 'r')

# Empty dictionary
data = {}

# For every line in the file...
for line in text.readlines():
    # skip if line starts with #
    if line.startswith('#'):
        continue

    # Split the name into two parts, hero name and hero power.
    row = line.split()

    # Map row data to dictionary. Hero name will be key, hero power will be value.
    data[row[0]] = row[1]

# Remember to close the file
text.close()

# For every key value pair in data...
for k,v in data.items():
    # See if value is the max value. If so, print it.
    if v==max(data.values()):
        print(k)

Полезные ссылки:

https://www.w3schools.com/python/ref_string_split.asp

https://www.w3schools.com/python/python_dictionaries.asp

1 голос
/ 10 октября 2019

это может сделать трюк

text = open('heroes.txt', 'r')
data={}
for line in text.readlines():
    if line.startswith('#'):
        continue
    d_l=line.split()
    d_l=[[x.strip() for x in y] for y in d_l]
    data[d_l[0]]= d_l[1]

text.close() #remember to close file

for k,v in data.items():
    if v==max(data.values()):
        print(k)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...