2015-09-17 22 views
-3

我有一個包含姓名和分數1文本文件(data.txt中):1即:Python:如何將文本文件中的整數按升序和/或降序排序?

Mike = 1\n John = 2\n Cam = 3\n 

我想整數與上升相應的名稱和降序排序一起。

with open(filepath, 'r') as file: 
    list = [] 
    for line in file: 
     list.append(line[1:-1].split(",")) 
list.sort(key=lambda x: int(x[4])) 

是的,我已經做了一些研究,但它不工作,我希望你們中的一個人可以幫我修復上面的代碼。我知道我必須將文本文件中的數據轉換爲列表,然後對列表進行排序,然後將其寫回文本文件,但我不知道如何。 來源:How do i sort a text file numerically highest to lowest?

+0

以逗號分割(',')似乎沒有任何意義... –

+0

看看分裂線。 – stark

+0

可以修復代碼嗎? – thetamablepython

回答

0

下面是一個使用sorted()函數在內存中執行的例子。

with open(filepath, 'r') as file: 
    sorted_data=sorted(file.readlines(), 
         key=lambda item: int(item.rsplit('=',1)[-1].strip())) 

sorted_data將包含已排序行的列表。

這就是:

打開文件:

with open(filepath, 'r') as file: 

獲取文件的所有行(如列表):

file.readlines() 

對於文件中的每一行, sorted()會根據每行傳入「key」函數的輸出進行數值排序。 「key」函數接受一行,用「=」符號分割,然後取最後一部分(=符號後面的部分),去掉任何前導或尾隨空格(.strip())並將值轉換爲整數(int)。

Sorted獲取線條並使用鍵功能輸出的數字對它們進行排序。

+0

我在文件路徑中輸入什麼? – thetamablepython

+0

我在哪裏添加此代碼? – thetamablepython

+0

只是跑了它,它沒有排序數據:( – thetamablepython

相關問題