2013-07-19 119 views
0

我有我的txt文件,我需要通過某個元素對信息進行排序。 這將是原始文件按python列表元素排序項目

Wheaton,Will,7 
Parker,Peter,9 
Apple,Adam,1 
Jones,Mike,10 
Potter,Harry,7 

它的文件,以通過第三個元素進行排序,這樣該文件將使用

allItems = [] 
for i in info: 
    data = i.rstrip('\n').split(',') 
    allItems.append(data) 

allItems.sort(key=lambda x: x[2]) 

但讀

Apple,Adam,1 
Wheaton,Will,7 
Potter,Harry,7 
Parker,Peter,9 
Jones,Mike,10 

我曾嘗試沒有工作。我怎麼能組織按列表元素。也會自動蟒蛇按字母順序排列的線條,否則我將不得不這樣做sepatately

+0

*但沒有一個作品*。 **如何**不起作用?你得到的輸出是什麼? –

+0

您是否試過'key = itemgetter(2)'而不是那個lambda? *'來自操作員導入itemgetter' – Brian

+0

您的第一次嘗試(至少發佈時間)從'data'切換到'lists'作爲排序事項。 – chepner

回答

3

你是比較字符串,因此'1' < '10' < '7' < '9'。將它們轉換爲int。

with open('info.txt', 'r') as f: 
     data = [line.split(',') for line in f] 
print(sorted(data, key=lambda x: int(x[2]))) 
+0

我需要它排序在文件中沒有打印 – derpyherp

+0

我認爲你可能需要讀取數據,對它進行排序然後回寫。@ derpyherp – zhangyangyu

+0

我會如何對它進行排序,就像我之前嘗試的那樣?之後我將如何回寫 – derpyherp

相關問題