python_如何对字典进行排序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_如何对字典进行排序?相关的知识,希望对你有一定的参考价值。
案例:
某班英语成绩以字典的形式存储为:
{‘lili’:78, ‘jin’:50, ‘liming’: 30, ......}
依据成绩高低,进行学生成绩排名
如何对字典排序?
方法1:
#!/usr/bin/python3 from random import randint def sort_dict(data): # 获得字典的key keys = data.keys() # 获得字典的value valus = data.values() # 按(value,keys)进行zip拼接 data_items = zip(valus, keys) # 按value进行排序,依据zip函数值的先后顺序,reverse表示列表是否翻转 return sorted(data_items, reverse=True) if __name__ == ‘__main__‘: # 生成abcdefg学生对应的分数 data = {k: randint(0, 100) for k in ‘abcdefg‘} # 获取排名 result = sort_dict(data) print(result)
方法2:
按key排序
#!/usr/bin/python3 from random import randint def sort_dict(data): print(data.items()) # 按key进行排序,reverse 表示列表是否翻转,x[0] 取的是data.items()中对应字典的key值 return sorted(data.items(), key=lambda x: x[0], reverse=True) if __name__ == ‘__main__‘: # 生成abcdefg各学生对应的分数 data = {k: randint(0, 100) for k in ‘abcdefg‘} # 获取排名 result = sort_dict(data) print(result)
按value排序
#!/usr/bin/python3 from random import randint def sort_dict(data): print(data.items()) # 按value进行排序,reverse 表示列表是否翻转,x[0] 取的是data.items()中对应字典的value值 return sorted(data.items(), value=lambda x: x[1], reverse=True) if __name__ == ‘__main__‘: # 生成abcdefgg各学生对应的分数 data = {k: randint(0, 100) for k in ‘abcdefg‘} # 获取排名 result = sort_dict(data) print(result)
先把字典变成列表中元组形式,然后通过sorted函数,lambda迭代每个列表值,x[0]指向字典key,x[1]指向value,reverse是否反转,默认从小到大
以上是关于python_如何对字典进行排序?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中对存储在字典中的 IP 地址进行排序?