2016-03-01 252 views
-1

我想所以從排序A-Z的名字排序在我的數學測驗的數組有,但我已經做了很多的研究,不能找到一個方法來做到這一點。其他執行相同任務的人在代碼的末尾使用大約一兩行代碼。按字母順序排列數組?

不要生氣我,這是我的第一個問題,我不是在這個最好的,因爲我已經離開了很長一段時間做其他的課程和任務。我的代碼的佈局

例子:

#Highest to Lowest 
if format_choice == "A": 
     scores = {} 
     with open("classA.txt","r") as result_f: 
      for line in result_f: 
       (name, secondname, score) = line.split() 
       scores[score] = name 
     result_f.close() 

這是通過取分數最高的文件中,並打印成殼。

如果沒有足夠的信息,我可以告訴更多的人,如果想看到更多。

謝謝。

+0

的是沒有打印 –

+0

怎麼回事最高? –

+0

很確定你應該在這裏轉儲整個程序,這樣我們才能真正調試它。您描述了正在進行的打印,但沒有打印。 –

回答

0

位倉促大量的代碼,但是這應該工作:

#Highest to Lowest 
if format_choice == "A": 
    with open("classA.txt","r") as result_f: 
     scores = [] 
     for line in result_f: 
      [name, secondname, score] = line.split() 
      record = [name, secondname, score] # We make a list called "record" With name as its first record 
      scores.append(record) # We stick that list onto scores each time 
     scores = sorted(scores, key=lambda File: File[0]) 
    # This is difficult to describe, but this sorts all the lists by their first record, File[0] or names, 
    result_f.close() 

    print(scores) 
    # This prints [['eric', 'ericlastname', '98'], ['fred', 'fredlastname', '2'], ['steve', 'stevelastname', '1']] 

在文本文件中,它是這樣的:

史蒂夫stevelastname 1
弗雷德fredlastname 2
埃裏克ericlastname 98

我也改變了你的scores = {}scores = []當你想要一個數組,而不是一本字典。

+0

謝謝你的幫助:) –

+0

關閉這個問題,如果你接受我的回答,那麼當人們搜索它時,這不會成爲沒有回答的問題, –