我有一个名为 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)
这根本不对。我只是得到一个空列表。我真的很感激一些帮助。
最佳答案
问题在于您正在检查列表理解中整行的长度。
试试这个:
five_letters = [line.split()[0] for line in file_contents if len(line.split()[0]) < 5]
这应该允许您仅检查单个团队名称的长度,然后将其添加到您的列表中。
关于Python列表理解: How do I manipulate text from a file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60028574/