python字典顺序排序,python sorted对字典排序
用一个例子来理解。
举个例子:比如用Python字典排序,d={a:1, c:3, b:2}按值升序排序,我们可以用排序后的高阶函数或者。列表的sort()方法。下面详细描述了两种排序方法:
1.排序高阶函数
D={a:1, c:3, b:2} #先建一个字典dd.items() #d.items()返回:dict _ items ([(a ,1),( c ,3),( b)
D _ result=sorted (d.items(),key=lambda x: x [1],reverse=false) #根据字典集中每个元组的第二个元素排序。x相当于字典集中遍历的一个元组。
Print(d_result) # get: [(a ,1),( b ,2),( c ,3)]
分类排序方法:
1.排序后的高阶函数语法格式:sorted(迭代对象,key=函数名,reverse=False/True)
函数:从iterable对象中依次取出一个元素,然后按照key指定的排列方式对元素进行排序。
迭代对象:可以依次取值的对象,如集合、序列(列表、字符串、元组)、字典等。
关键:它是列表排列的基础。一般可以自定义一个函数返回排序的基础,然后将函数名绑定到key。
Reverse:翻译成reverse,reverse默认等于False,按从小到大排序。当等于True时,从最大到最小排序。
2.匿名函数lambda的格式:函数名=lambda[参数1,参数2,]:返回操作语句块生成的结果,并绑定到函数名。
示例:key=lambda x: x[1]
# x:相当于字典集中的一个元组,例如在dict _ items ([(a ,1),( b ))中:( a ,1) or (c ,3) or (b ,2)]
# x[1]:返回x中的第二个元素,即键值对元组中的值。dict _ items中的1或2或3([( a ,1),( c ,3),( b ,2)])
注意:
1.不要对排序函数中的iterable对象使用dictionary D,因为它只能迭代dictionary D的键。
示例:不使用d _ result=sorted (d,key=lambda x: x [1],reverse=false),而使用d _ result=sorted (d.items(),key=lambda x: x [1],reverse=false)。
2.排序函数排序后,绑定一个对象(赋值)
示例:d_result=sorted (d.items(),key=lambda x: x [1],reverse=false),因为字典是无序类型。使用sorted函数排序后,不绑定d _ result,字典会自动乱序。
其次。列表的sort()方法
Python中的字典是无序类型,没有自己的排序方法。但是您可以通过使用。列表的sort()方法。
首先,应该将字典转换成列表,然后进行排序。
D={a:1, c:3, b:2} #先建一个字典dd.items()# get: dict _ items ([(a ,1),( c ,3),( b ,2)])2)l . Sort(key=lambda x:x[1],reverse=false) #按列表中每个元组的第二个元素从小到大排序。x表示从l遍历的元组。
Print(L) # get: [(a ,1),( b ,2),( c ,3)]
注意:
1.上面例子中最重要的一步是:L=list(d.items()),即:l=list (dict _ items ([(a ,1),( c ,3),( b ,2)])
使用list () list构造函数将L=dict _ items ([(a ,1),( c ,3),( b ,2)])转换成列表,得到列表:L=[(a ,1),( c ,3)。
list()构造函数可以直接把d.items()生成的dict_items键值对变成列表。
2.list的L.sort()方法:L.sort(key=函数名,reverse=False/True)
L.sort():它会自动遍历列表中的元素,即依次取出一个元素。然后按照键绑定的功能排序。
示例:l.sort (key=lambda x: x [1],reverse=false) # l=[(a ,1),( c ,3),( b ,2)]
从列表L中取第一个元素( a ,1)元组,取元组的第二个元素 1 作为排序依据,然后取第二个、第三个、元素从列表中依次确定排序依据,最后reverse=False,按从小到大的顺序排列。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。