2014-02-06 118 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()