您的位置:首页 > 编程语言 > Python开发

Python 字典的排序

2015-08-07 16:59 495 查看
在做 google-python-exercises 中 basic/wordcount.py 这个练习的时候,遇到了一个关于字典排序的问题。其实很简单,但是当时做的时候想了好久才找到思路(初学者嘛 ^_^)。于是想把这个问题记录下来。

题目

假设有如下字典(字典的键称作 word,其值称作 count):

word_count = {'a': 5, 'o': 2, 'g': 100, 'hi': 52}


按照 word 首字母进行排序,并将排序好的 word 和 count 以
word count
的形式打印出来。

按照 count 的大小由大到小进行排序,并将排序好的 word 和 count 以
word count
的形式打印出来。

1. 按照字典的键进行排序

#!/usr/bin/python -tt

import sys

def main():
word_count = {'a': 5, 'o': 2, 'g': 100, 'hi': 52}

for word in sorted(word_count.keys()):
print word, word_count[word]

if __name__ == '__main__':
main()


输出为:

a 5
g 100
hi 52
o 2


2. 按照字典的值进行排序

#!/usr/bin/python -tt

import sys

def get_count(word_count_tuple):
return word_count_tuple[1]

def main():
word_count = {'a': 5, 'o': 2, 'g': 100, 'hi': 52}

items = sorted(word_count.items(), key=get_count, reverse=True)

for item in items:
print item[0], item[1]

if __name__ == '__main__':
main()


输出为:

g 100
hi 52
a 5
o 2


这个地方采用了
sorted()
函数的知识,当时做的时候没想起可以使用 key= 自定义排序,因此想了好久都没做出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: