比如有下面一段代码(google-python-exercises,basic,wordcount.py)
string = "Alice alice was beginning to to to get very tired of sitting by her sister"
sList = string.split()
wordDict={}
for w in sList:
if w in wordDict:
wordDict[w]+=1
else:
wordDict[w]=1
这些是把string
里面的单词频次做一个统计,放在wordDict
这个字典里面,不过现在还没有排序。如果print(wordDict)
得出来的结果是这样的:
{'sister': 1, 'her': 1, 'get': 1, 'very': 1, 'was': 1, 'tired': 1, 'Alice': 1, 'alice': 1, 'to': 3, 'of': 1, 'sitting': 1, 'beginning': 1, 'by': 1}
如果要根据单词出现的频次排序,肯定需要借助key=,问题是这个function怎么写?下面这个官方的写法不错:
def get_count(wordDictTuple):
return wordDictTuple[1]
items = sorted(wordDict.items(), key=get_count, reverse=True)
所以对于字典里面每一个item来说,都是一个tuple,由名称及值组成,名称可以用tuple[0]获取,值就是tuple[1]
bottom line:python的字典,每一个item都是一个tuple,通过[0]和[1]可以获得名称以及值
网友评论