2015-06-28 42 views
-3
file = open("1.txt") 
classj = (file.readlines()) 
s = [] 
for line in sorted(classj): 
    classj = (line.rstrip()) 
    classa = (classj.split("-"))#sort 
    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]) 

我有在我在,我需要從高分到低分排序,分數的文本文件的內容,但它最初只打印成績,但現在我得到消息列表索引超出範圍列表索引超出範圍排序從高到低

+0

如果沒有「 - 」中的字符串?你會得到結果列表中的元素嗎?.. – Maroun

+0

添加您在問題中使用的文件的內容 –

回答

-1

您的文件有一些行,其中沒有-。也許是一條空線?

可以忽略空行,也可以不帶'-'忽略行:

with open("1.txt") as inp: 
    s = [] 
    for line in inp: 
     line = line.strip() 
     if not line: 
      continue 
     try: 
      name, score = line.split('-') 
     except ValueError: 
      print("Warning! Ignore line: %s" % line) 
     else: 
      s.append(name, int(score)) 
s.sort(reverse=True, key=lambda x:x[1]) 
for name, score in s: 
    print(name,"-",score)