gadreel,百松居,天源4591好玩吗
几天前,你要是让我对字典的元素进行排序,我会告诉你,先用一个列表存储要排序的元素,然后使用sort()
对列表元素进行排序,之后就能根据键-值对应情况判断字典元素的顺序。
stu = {1002: 78, 1003: 89, 1001: 77, 1006: 98, 1005: 92, 1004: 100} score = list(stu.values()) score.sort() for key, val in enumerate(score[::-1]): if key < 3: for i in stu.keys(): if stu[i] == val: print(i, val)
1004 100
1006 98
1005 92
这是个蠢方法,费时又费力。好在我现在知道了sorted()函数,可以很方便地对字典进行排序。
sorted可对所有可迭代对象进行排序操作。
sorted(iterable, cmp=none, key=none, reverse=false)
iterable
可迭代对象cmp
比较的函数。这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key
主要是用来进行比较的函数。只有一个参数,具体的函数的参数就是取自可迭代对象中,指定可迭代对象中的一个元素进行排序。reverse
排序规则。reverse=true 降序, reverse=false 升序(默认)返回重新排序的列表
需要用到key参数
stu = {1002: 78, 1003: 89, 1001: 77, 1006: 98, 1005: 92, 1004: 100} score = sorted(stu.items(), key=lambda item:item[1], reverse=true) # 查看score print(score) # 取前三名 for index, val in enumerate(score): if index < 3: print(val[0], val[1], sep=" ")
dict_items([(1002, 78), (1003, 89), (1001, 77), (1006, 98), (1005, 92), (1004, 100)])
[(1004, 100), (1006, 98), (1005, 92), (1003, 89), (1002, 78), (1001, 77)]
1004 100
1006 98
1005 92
stu = {1002: 78, 1003: 89, 1001: 77, 1006: 98, 1005: 92, 1004: 100} score = sorted(stu.items(), key=lambda item:item[0]) for index, val in enumerate(score): print(val[0], val[1], sep=" ")
1001 77
1002 78
1003 89
1004 100
1005 92
1006 98
如果只想输出键的排序结果或者值的排序结果。很简单,使用dict.keys()和dict.values()作为sorted的参数就行了。
stu = {1002: 78, 1003: 89, 1001: 77, 1006: 98, 1005: 92, 1004: 100} print(sorted(stu.keys())) print(sorted(stu.values()))
[1001, 1002, 1003, 1004, 1005, 1006]
[77, 78, 89, 92, 98, 100]
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python 实现将numpy中的nan和inf,nan替换成对应的均值
python爬虫把url链接编码成gbk2312格式过程解析
网友评论