python - 为什么我的代码无法从 txt 文件中读取 3 位数字?

标签 python python-3.x list

这是我的代码:

Top_5 = []
with open (("winscorefile.txt"),"r") as Top5_File:
    for number in Top5_File:
        Top_5.append(number)
        Top_5.sort()
        Top_5.reverse()
        number_of_items = len(Top_5)
     while number_of_items > 5:
        Top_5.pop()
        number_of_items = len(Top_5)

    for data in Top_5:
        print(data)

我的文本文件看起来像(它是分数和用户名的集合):

62 rob 
100 rob
56 ROB 
54 rob 
76 bor 
64 bor 
52 a 
44 p1 
54 p1 
46 p2 
74 p1 
52 p2 
66 p2 
76 p2 
38 p2 
60 p1 
58 p1

我的文件旨在输出前 5 个最高分数。它正在这样做,但只输出最高的两位数字。我不知道为什么它忽略了 100 分。

最佳答案

您可以在空格上拆分单行并将第一部分转换为 int。

然后您可以将号码和人员作为元组添加到您的列表中:

Top_5 = []
Top5_File = """
    62 rob
    100 rob
    56 ROB
    54 rob
    76 bor
    64 bor
    52 a
    44 p1
    54 p1
    46 p2
    74 p1
    52 p2
    66 p2
    76 p2
    38 p2
    60 p1
    58 p1
""".strip().split("\n")
for number in Top5_File:
    number, person = number.strip().split(" ")
    Top_5.append((int(number), person))
# sort only once, outside the loop!
Top_5.sort(reverse=True)
number_of_items = len(Top_5)
while number_of_items > 5:
    Top_5.pop()
    number_of_items = len(Top_5)

for data in Top_5:
    print(data)

输出:

(100, 'rob')
(76, 'bor')
(76, 'p2')
(74, 'p1')
(66, 'p2')

如果你不需要元组,你可以使用:

for number in Top5_File:
    Top_5.append(number.strip())
Top_5.sort(key=lambda x: int(x.split(" ")[0]), reverse=True)
number_of_items = len(Top_5)
while number_of_items > 5:
    Top_5.pop()
    number_of_items = len(Top_5)

for data in Top_5:
    print(data)

输出:

100 rob
76 bor
76 p2
74 p1
66 p2

关于python - 为什么我的代码无法从 txt 文件中读取 3 位数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52891484/

相关文章:

Linux 用户列表和 UID/bash 层

python - authenticate() 函数不工作 django.contrib.auth

python - 在类构建过程中正确实现方法继承

python - Pygame:矩形与同一列表中的其他矩形碰撞

python - 如何在不更改任何默认值的情况下在 Ubuntu 上为 python 3.8 安装 pip?

python-3.x - 重复数组直到一定长度 groupby pandas

python - 使用 Pandas 将字符串格式化为日期时间 - 指令有问题

python - MS-Access 数据库在插入期间变得非常大

java - Java中的排序列表<>

list - 如何在 Vim 脚本中展平嵌套列表?