按字母顺序排序

时间:2016-04-25 20:37:28

标签: python-3.x

file = open("resultsA.txt", "r")
    for line in file:
        x = line.split(",")
        a = x[0]
        score_one = x[1]
        score_two = x[2]
        score_three = x[3]
        names = sort(a)
        maximum = max(score_one + score_two + score_three)
        print(names + "-" + maximum)

我已经成功测试了这段代码并输出了一组变量的最大值。但是,我一直在尝试组织变量“名称”,以便按字母顺序输出所有名称但是它没有工作,我遇到了这个错误:here

1 个答案:

答案 0 :(得分:0)

由于x[0](后来a)是一行中的第一个条目,sort(a)将无法按预期工作。这里缺少sort的实现(sort不是内置的,可能是你的意思sorted?)

您必须构建一个包含姓名和分数的列表,并对整个列表进行排序。

尝试这样的事情:

file_results = open("resultsA.txt", "r")
lines_splited=[line.strip().split(",") for line in file_results]
lines_sorted=sorted(lines_splited, key=lambda v:v[0])
results=[(name, max(a,b,c)) for name, a, b, c in lines_sorted]

for name, score in results:
    print(name+"-"+score)

我的结果A.txt进行测试:

C,2,1,0
A,1,2,3
B,3,4,1

运行脚本时的结果:

A-3
B-4
C-2