Python operator.itemgetter

简介: Python operator.itemgetter

实例


我们先声明一个列表,里面元素为字典

data = [
    {'age': 31, 'city': 'taipei', 'name': 'amy'},
    {'age': 71, 'city': 'tokyo', 'name': 'john'},
    {'age': 16, 'city': 'london', 'name': 'zoe'},
    {'age': 16, 'city': 'rio', 'name': 'cathy'},
    {'age': 48, 'city': 'frankfurt', 'name': 'david'}]


排序


我们用sorted对年龄进行排序,参数key传入lambda,指定要根据哪个元素进行排序

print(sorted(data, key=lambda x: x['age']))


输出:

[{'age': 16, 'city': 'london', 'name': 'zoe'},
 {'age': 16, 'city': 'rio', 'name': 'cathy'},
 {'age': 31, 'city': 'taipei', 'name': 'amy'},
 {'age': 48, 'city': 'frankfurt', 'name': 'david'},
 {'age': 71, 'city': 'tokyo', 'name': 'john'}]


其实,key用operator.itemgetter指定想要排序的元素,并且速度更快

from operator import itemgetter
data = [
    {'age': 31, 'city': 'taipei', 'name': 'amy'},
    {'age': 71, 'city': 'tokyo', 'name': 'john'},
    {'age': 16, 'city': 'london', 'name': 'zoe'},
    {'age': 16, 'city': 'rio', 'name': 'cathy'},
    {'age': 48, 'city': 'frankfurt', 'name': 'david'}]
print(sorted(data, key=itemgetter('age')))


结果和上面一样

[{'age': 16, 'city': 'london', 'name': 'zoe'},
 {'age': 16, 'city': 'rio', 'name': 'cathy'},
 {'age': 31, 'city': 'taipei', 'name': 'amy'},
 {'age': 48, 'city': 'frankfurt', 'name': 'david'},
 {'age': 71, 'city': 'tokyo', 'name': 'john'}]


相关文章
|
9月前
|
索引 Python
「Python系列」Python operator模块、math模块
Python的`operator`模块提供了一系列内置的操作符函数,这些函数对应于Python语言中的内建操作符。使用`operator`模块可以使代码更加清晰和易读,同时也能提高性能,因为它通常比使用Python内建操作符更快。
70 0
|
9月前
|
存储 开发者 Python
Python2和Python3的range(100)的区别
【2月更文挑战第20天】
152 0
|
Python
|
Python
|
Serverless 索引 Python
Python3 operator 模块
Python3 operator 模块