排序导入的文本文件?

2024-09-24 02:15:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我已经将一个文本文件导入到python中。该文件是一个存储用户名和分数的数据库。它目前以与原始文件几乎相同的格式打印。我把每一行分成两部分:名字和分数。我已经设法按字母顺序对数据进行了排序,现在正试图从高到低对其进行排序,但不知道如何排序??在

file = open("classj.txt")
classj = (file.readlines())
for line in sorted(classj):
    classj = (line.rstrip())
    classa = (classj.split("-"))
    score = (classa[1])
    name = (classa[0])
    print(name,"-",score)

该输出:

^{pr2}$

有什么办法让代码排序文件,使最高分数(JEMMA)首先显示,最低分数(RILEY)最后显示?在


Tags: 文件name数据库排序格式line名字分数
3条回答

将数据作为元组放入列表中。然后按分数降序排序。在

file = open("classj.txt")
classj = (file.readlines())
s = []
for line in sorted(classj):
    classj = (line.rstrip())
    classa = (classj.split("-"))
    score = int(classa[1])
    name = (classa[0])
    s.append( (name,score) )
s.sort(reverse=True, key=lambda x:x[1])
for x in s:
    print(x[0],"-",x[1])

使用[x.strip().split('-') for x in open("classj.txt")]构建列表的名称和分数对,并使用score按降序排序。在

from operator import itemgetter
for name,score in sorted((x.strip().split('-') for x in open("classj.txt")),key=itemgetter(1),reverse=True):
    print(name + '-' + score)

首先,可以创建文件中所有名称/分数对的元组(name,score)列表。然后可以对列表使用sorted()函数:

import operator

ns_pairs = {"Emily": 7, "Jemma": 9, "Leo": 6, "Marco":8, "Riley": 5}
sorted_ns_pairs = sorted(ns_pairs.items(), key=operator.itemgetter(1), reverse=True)

这是预定义列表上的一个示例。显然,您需要通过将文件中的姓名/分数读入列表来创建列表(如ns_pairs)。希望这有帮助!在

相关问题 更多 >