Python 3.3:排序对象/方法列表

时间:2014-02-06 17:26:48

标签: python list class methods

我道歉我不确定Python的术语。

我有一个名为“Word”的类,它所做的是计算并将给定文本文件中的所有单词存储为元组I.e.

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

其中索引0的项是单词,索引1是出现。它存储在类“word”中。

是否可以使用

listName.sort() 

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

给我以下列表:

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

我想尝试使用它而不是尝试创建一个新的排序功能(我相信我能做到,但我没有成功)?

我想我还应该提到List和Word类在不同的类中(如果这有所不同)。

提前谢谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

要对列表进行排序,

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

应按字母顺序对列表进行排序。

此外,您可能想要查找

collections.counter

因为它与你正在做的事情有类似的目的

答案 2 :(得分:0)

我实际上让它工作,我需要一个“over rider方法”(? - 我需要定义__lt__来比较Word()的str元素),因为我收到了这个错误:      TypeError:unorderable类型:str()&lt;字()