比如有下面一段代碼(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
里面的單詞頻次做一個統(tǒng)計炸枣,放在wordDict
這個字典里面搭伤,不過現(xiàn)在還沒有排序踊挠。如果print(wordDict)
得出來的結(jié)果是這樣的:
{'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}
如果要根據(jù)單詞出現(xiàn)的頻次排序乍桂,肯定需要借助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]可以獲得名稱以及值