2014-02-06 120 views
0

我很抱歉我不確定Python的術語。Python 3.3:排序對象/方法列表

我有一個名爲「Word」的類,它所做的是計數並將給定文本文件中的所有單詞存儲爲元組I.e.

self.listName = [('world', 2), ('hello', 3), ('stack', 1), ('overflow', 2)] 

其中索引0的項目是單詞,索引1是出現次數。這存儲在類「單詞」中。有沒有什麼辦法,我可以使用

listName.sort() 

sorted(listName, key=lambda Word: Word[0]) 

給我下面的列表:

self.listName = [('hello', 3), ('overflow', 2), ('stack', 1), ('world', 2)] 

我想嘗試使用這個,而不是試圖創建一個新的排序功能(我相信我可以做,但我沒有成功)?

我想我還應該提一下,List和Word類是在不同的類(如果這有所作爲)。

在此先感謝!

+0

我真的不能夠直觀地你的課堂結構看起來像。 –

回答

0

要整理好你的清單,請點擊這裏

listname.sort(key=lambda x:x[0]) 

應按字母順序排列列表。

此外,您可能要查找

collections.counter 

,因爲它提供了類似的目的,你在做什麼

+0

我會查找它,但它是我如何整理我的詞類內的信息 – Grogie

+0

回覆:Collections.counter 我實際上應該比較哈希表方法和做這種東西的列表方法。 – Grogie

2

你並不需要在所有指定key

listName = [('world', 2), ('hello', 3), ('stack', 1), ('overflow', 2)] 
print(sorted(listName)) 

輸出

[('hello', 3), ('overflow', 2), ('stack', 1), ('world', 2)] 

有關這種比較是如何進行的更多信息,請查看該文檔頁面Comparing Sequences and Other Types

0

其實我得到它的工作,我需要一個「在車手法」( ? - 我需要定義__lt__來比較Word()的str元素),但是因爲我得到了這個錯誤: TypeError:unorderable types:str()< Word()