python之itemgetter函数:对字典列表进行多键排序

itemgetter函数:对字典列表进行多键排序

 1 from operator import itemgetter
 2
 3 list_people = [
 4     {‘name‘: ‘Mike‘, ‘age‘: 22, ‘score‘: 90},
 5     {‘name‘: ‘Alice‘, ‘age‘: 22, ‘score‘: 90},
 6     {‘name‘: ‘Lee‘, ‘age‘: 26, ‘score‘: 92},
 7     {‘name‘: ‘Ben‘, ‘age‘: 26, ‘score‘: 85},
 8     {‘name‘: ‘Tom‘, ‘age‘: 33, ‘score‘: 90},
 9     {‘name‘: ‘Jill‘, ‘age‘: 41, ‘score‘: 72}
10 ]
11
12 print(‘根据名字排序:‘)
13 for i in sorted(list_people, key=lambda person: person[‘name‘]):
14     ‘‘‘sorted()函数默认升序排列‘‘‘
15     print(i)
16
17 print(‘\n根据得分降序排列:‘)
18 for i in sorted(list_people, key=itemgetter(‘score‘), reverse=True):
19     ‘‘‘参数reverse=True表示降序排列‘‘‘
20     print(i)
21
22 print(‘\n根据名字和年龄多键排序:‘)
23 for i in sorted(list_people, key=itemgetter(‘name‘, ‘age‘)):
24     print(i)

运行结果:

1 根据名字和年龄多键排序:
2 {‘name‘: ‘Alice‘, ‘age‘: 22, ‘score‘: 90}
3 {‘name‘: ‘Ben‘, ‘age‘: 26, ‘score‘: 85}
4 {‘name‘: ‘Jill‘, ‘age‘: 41, ‘score‘: 72}
5 {‘name‘: ‘Lee‘, ‘age‘: 26, ‘score‘: 92}
6 {‘name‘: ‘Mike‘, ‘age‘: 22, ‘score‘: 90}
7 {‘name‘: ‘Tom‘, ‘age‘: 33, ‘score‘: 90}
时间: 2024-10-19 11:19:41

python之itemgetter函数:对字典列表进行多键排序的相关文章

Python之在函数中使用列表作为默认参数

??本文将介绍笔者在工作中遇到的Python的一个坑,那就是使用列表作为默认参数. ??我们知道,在Python中,列表(list)是可变对象,所以列表的内容可能会在函数内改变.另一个需要注意的是,使用列表作为函数的默认参数时,列表的内容变化情况. ??首先,我们看以下的代码例子: def add(x, lst=[]): if x not in lst: lst.append(x) return lst def main(): list1 = add(1) print(list1) list2

python之enumerate函数:获取列表中每个元素的索引和值

源码举例: 1 def enumerate_fn(): 2 ''' 3 enumerate函数:获取每个元素的索引和值 4 :return:打印每个元素的索引和值 5 ''' 6 list = ['Mike', 'male', '24'] 7 for index, value in enumerate(list): 8 print("索引:" + str(index), ", 值:" + value) 9 10 11 enumerate_fn() 运行结果: 索引:

Python:enumerate函数、introspection对象自省、推导式(列表(list)推导式、字典(dict)推导式、集合(set)推导式)

枚举(enumerate)是Python内置函数.它允许我们遍历数据并?动计数,例如下面这样:for counter, value in enumerate(some_list): print(counter, value)不只如此,enumerate也接受?些可选参数,这使它更有?.例如:for counter, value in enumerate(some_list,1): # 指定从1开始计数 print(counter, value)还可以?来创建包含索引的元组列表. 1 # 指定索引

【python cookbook】【数据结构与算法】13.通过公共键对字典列表排序

问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的itemgetter()函数对这类结构进行排序是非常简单的. # Sort a list of a dicts on a common key rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fname': 'David', 'lname': 'Beazley', 'uid': 1002}, {'fname': 'John', 'lnam

python之路(二)--列表,元祖,字典

列表list内定义的一些函数 append:在列表末尾添加新的对象. 函数原型:def append(self, p_object) 用法: list1.append(p_object) clear:清空列表 函数原型:def clear(self) 用法: list1.clear() count:统计某个元素在列表中出现的次数 函数原型:def count(self, value) 用法: list1.count(value) extend:在列表末尾一次性追加另一个序列中的多个值(用新列表扩

34 py创建和使用字典 使用dict函数将序列(列表、元组)转换为字典 以及 字典的基本操作

第一课 创建和使用字典 # 创建和使用字典 # 我们以前讲过2种序列:1列表 2元组 # 共同点:都是通过索引引用元素值 # 不同点:列表是可读写的,元组是只读的 names = ["Bill", "Mike", "John", "Mary"] numbers = ["1234", "4321", "6789", "6543"] print(num

Python学习,第五课 - 列表、字典、元组操作

本篇主要详细讲解Python中常用的列表.字典.元组相关的操作 一.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 通过下标获取元素 #先定义一个列表 letters = ['a', 'b', 'c', 'd', 'e'] letters[1] #输出:b #列表的索引是从0开始 letters[-1] #输出:e #也可以倒着取,-1既倒数第一个元素 切片:获取列表中多个元素 letters = ['a', 'b', 'c', 'd', 'e'] #

Python中的sorted函数以及operator.itemgetter函数

operator.itemgetter函数operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子. a = [1,2,3] >>> b=operator.itemgetter(1)      //定义函数b,获取对象的第1个域的值>>> b(a) 2 >>> b=operator.itemgetter(1,0)  //定义函数b,获取对象的第1个域和第0个的值>&

python基础-字典-列表-元组考试-day5

1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] 1 li=['alex','eric','rain'] 2 v="_".join(li) 3 print(v) 执行结果: 1 alex_eric_rain 2.查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素.li=["alec","aric","Alex","Tony&quo