python字典按值(Values)排序的方法
python,对字典按照值的大小进行排序的方法(keys,values)
·
python字典按照值的大小来排序的方法
def set_rank(a_dict):
a_sort_list = sorted(a_dict.items(),key=lambda x : x[1], reverse=True)
a_sort_dict = {}
for n, s in a_sort_list:
a_sort_dict[n] = s
return a_sort_dict
a_dict
这是个存放了N个元素且无序的字典,例如{'乙':660,'丁':102,'丙':200,'甲':2000}
a_sort_list = sorted(a_dict.items(),key=lambda x : x[1], reverse=True)
这里用到了sorted函数,items函数,以及lambda函数。而这一行代码的输出结果会是:
[('甲', 2000), ('乙', 660), ('丙', 200), ('丁', 102)]
输出的整体类型是列表,元素是一个元组。
sorted() 函数的基本语法格式如下:
list = sorted(iterable, key=None, reverse=False)
其中,iterable 表示指定的序列,key 参数可以自定义排序规则;reverse 参数指定以升序(False,默认)还是降序(True)进行排序。sorted() 函数会返回一个排好序的列表。
items()函数:
字典 items() 函数
以列表返回可遍历的(键, 值) 元组数组
lambda函数:
lambda函数为自定义函数,理解为不存在函数名的函数,举个例子,像之前我们定义函数
def zidingyi(x):
x = x + 1
return x
#调用函数
print(zidingyi(4))
# 输出结果会是5
而使用lambda函数则是:
zidingyi = lambda x : x+1
print(zidingyi(4))
# 输出结果会是5
其实就写法不同而已,lambda x 的x为传入参数,x+1则是函数内需要执行的内容,这样讲,应该不难理解了吧。
lambda x : x[1]
x[1],返回列表的第二个元素,我们这里是要items()函数返回(键, 值) 元组里的值,所以为x[1],需要是要按键的,则是x[0]。
a_sort_dict = {}
for n, s in a_sort_list:
a_sort_dict[n] = s
return a_sort_dict
由于sorted返回的是列表,而最终我们要的是字典,所以需要遍历整个列表,按字典的形式输出。
这样,我们就完成一次字典按照值从大到小的排序。
这是我日常的笔记,由于对字典排序是之前一个项目里面用到的,所以对它进行记录一下。以上的方法是学习了网上各路大神的思路,有哪些错误或者有其他更好的方法,请各位大神多多指导!!!!
更多推荐
已为社区贡献1条内容
所有评论(0)