如何打印按点数排序? Python

时间:2018-12-04 00:14:13

标签: python python-3.x

results.txt

Alan: 15 points.
Smith: 10 points.
Luka: 20 points.

预期打印:

Luka: 20 points.
Alan: 15 points.
Smith: 10 points.

代码:

def print_results():

    with open("results.txt", "r") as f:
        linija=f.readlines()

    linija=sorted(linija,key=itemgetter(1),reverse=True)

    print("######### HALL OF FAME #########\n")
    for line in linija:
        print line
    print("################################")

需要帮助,如何获得这些要点并按它们排序?

1 个答案:

答案 0 :(得分:1)

您可以在阅读时拆分每一行,然后按结果列表中的int值进行排序。然后,使用' '.join打印输出,以字符串形式返回

with open("results.txt", "r") as f:
    linija=[i.split() for i in f.readlines()]

linija = sorted(linija,key=lambda x: int(x[1]),reverse=True)

print("######### HALL OF FAME #########\n")
for line in linija:
    print(' '.join(line))
print("################################")

输出:

######### HALL OF FAME #########

Luka: 20 points.
Alan: 15 points.
Smith: 10 points.
################################