python字典排序 笔记

字典排序

我们知道 字典是无序的,所以打印字典时内容也是无序的。因此,为了使统计得到的结果更方便查看需要进行排序。

强调:

  • 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、使用列表排序实现字典排序

直接上代码:

扫描二维码关注公众号,回复: 12922484 查看本文章

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)

资料参考,该资料中代码有误!

猜你喜欢

转载自blog.csdn.net/yfanjy/article/details/103512334