字典排序
我们知道 字典是无序的,所以打印字典时内容也是无序的。因此,为了使统计得到的结果更方便查看需要进行排序。
强调:
- Python中字典的排序分为按“键”排序和按“值”排序。
- 字典排序后,通常改变为以列表形式展现。当然,也可以转化为字典形式展现。
sorted()方法使用介绍:
sorted()方法使用格式:
sorted(iterable,key=函数名字,reverse=False)
参数解释:
参数 | 说明 |
iterable | 必须参数,是可迭代类型; |
key | 可选参数,有默认值。key在使用时必须提供一个排序过程中总被调用的函数名字(或者被称为函数引用)。一般来说,key可以使用lambda匿名函数。 |
reverse | 可选参数,排序规则, 默认为升序reverse = False;reverse = True 为降序。 |
返回值 | 是一个经过排序的新的可迭代类型,不改变原序列。 |
如果对字典进行排序,常用的形式如下:sorted(dict.items(), key=lambda e:e[1], reverse=True), 其中e表示dict.items()中的一个元素,e[1]则表示按 值排序如果把e[1]改成e[0],那么则是按键排序,reverse=False可以省略,默认为升序排列。
说明:字典的items()函数返回的是一个列表,列表的每个元素是一个键和值组成的元组。因此,sorted(dict.items(), key=lambda e:e[1], reverse=True)返回的值同样是由元组组成的列表。
lambda(匿名函数)使用介绍
lambda函数可以接收任意数量的参数,但只能返回一个表达式的值。
使用格式:
#第一种
#定义匿名函数
fun = lambda 形参 : 返回值的表达式
#调用匿名函数1
fun(实参)
#第二种
#定义和调用匿名函数
(lambda 形参 : 返回值的表达式)(实参)
1、按“值”排序
按“值”排序就是根据字典的“值”进行排序,可以使用内置的sorted()函数。
格式如下:
sorted(dict.items(), key=lambda e:e[1], reverse=True)
其中e表示dict.items()中的一对 (键,值) 元素,e[1]则表示按 “值” 排序。
2、按“键”排序1
如果把上述内容e[1]改成e[0],那么则是按 键 排序。
3、使用列表排序实现字典排序
直接上代码:
3.1按“值”排序
ls_student = [('2',67),['1',59], ['3',57]]
dc_student = dict(ls_student)
def sortedDictValues1(adict):
items = list(adict.items())
items.sort()
return [(key,value) for key, value in items]
re = sortedDictValues1(dc_student)
print(re)
3.2按“键”排序
ls_student = [('2',67),['1',59], ['3',57]]
dc_student = dict(ls_student)
def sortedDictValues1(adict):
keys = list(adict.keys())
keys.sort()
return [(key,adict[key]) for key in keys]
re = sortedDictValues1(dc_student)
print(re)
资料参考,该资料中代码有误!