无法打印从文件中读取的最高值

时间:2015-03-17 18:16:34

标签: python

所以我创建了一个测验。我已经使用python将用户测验保存在文本文件中。 我已经想出了如何让教师按照字母顺序查看用户名,并从文本文件中得分。

这是我的代码到目前为止的样子..

def alpha():
  b = open("Class X.txt" , "r")
  fo = b.readlines()
  for x in sorted (fo): 
      print(x)
def beta():
  b = open("Class Y.txt" , "r")
  fo = b.readlines()
  for x in sorted(fo):
      print(x)
def charlie():
  b = open("Class Z.txt" , "r")
  fo = b.readlines()
  for x in sorted(fo):
      print(x)
option = input("Do you want to review the scores in/from: A)Alphabetical order with highest score. 

if option == "A":
  if Class == "X":
    alpha()

  elif Class == "Y":
    beta()

  elif Class == "Z":
    charlie()`

我一直试图从文本文件中按字母顺序打印所有用户名,我已经成功了。但是,我一直在努力尝试打印每个用户的最高分,而不是他们的任何分数。

我的文本文件如下所示。

Joe:2 
Jale:4 
Laurence:1 
Harry:2 
Nakita:2

我想知道是否有人可以帮我弄清楚如何用字母顺序包含用户名称的最高分,就像我已经完成的那样,从文本文件中已经设置了如上所示。 我还使用了Python 3.3.2版本。

1 个答案:

答案 0 :(得分:0)

from operator import itemgetter

lines = [line.strip().split(':') for line in open('results.txt')]


for each in lines:
    each[1] = int(each[1])
lines.sort(key=itemgetter(1))

for each in lines:
    print each[0],':',each[1]

输出:

Laurence : 1
Joe : 2
Harry : 2
Nakita : 2
Jale : 4

这将打印出根据分数的升序排序的名称列表。如果您想按字母顺序使用(key=itemgetter(0))