为什么这段代码不按键排序?

时间:2015-01-24 18:40:05

标签: python

for key in (filedata):
        print(key.strip('\n'))

目前,此代码打印出按字母顺序排序的数据。我如何按键排序并使其仅打印一次?它需要按平均分数排序。

1 个答案:

答案 0 :(得分:1)

这完全取决于你想从每一行中提取排序键的方式 - Python无法猜测,我们也不能,你说“按平均分数排序”,但我们如何猜测如何你打算从每一行获得平均得分吗?!

假设分数平均值是每行中最后一个以空格分隔的单词,

def score_avg(line):
    return float(line.strip().split()[-1])

这可能就是你如何准确而毫不含糊地表达这一观念;然后你让Python知道:

filedata.sort(key=score_avg)

(不需要使用sorted,因为你正在排序!)并且你很高兴。