Python Понимание списка: Как мне манипулировать текстом из файла - PullRequest
1 голос
/ 02 февраля 2020

У меня есть файл с именем nbatams.txt, который содержит следующее содержимое

Bucks 41

Raptors 35

Celtics 32

Heat 32

Pacers 31

76ers 31

Nets 21

Magic 21

Я пытаюсь прочитать части файла с пониманием списка, но, похоже, что-то не так.

Например, я хотел бы отобразить все команды с более чем 30 победами и названия команд с более чем 5 буквами.

Я понял, что могу это сделать

file_contents = [line.strip() for line in open("nbateams.txt", "r")]
for team in file_contents:
    name, wins = team.split()
    print("The", name, "have won", wins)

Чтобы получить список команд с победами, но я попытался

five_letters = [teams for teams in file_contents if len(team_name) < 5] 
print(five_letters)

, и это неправильно все. Я просто получаю пустой список. Буду очень признателен за помощь.

1 Ответ

1 голос
/ 02 февраля 2020

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

Попробуйте вместо этого:

five_letters = [line.split()[0] for line in file_contents if len(line.split()[0]) < 5] 

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

...