python中operator.itemgetter函数

operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。

k = [3,6,8]
b = operator.itemgetter(1)
print(b(k))
#输出6
k = [3,6,8]
b = operator.itemgetter(2,0)
print(b(k))
#输出(8, 3)

要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。

students = [('john', 'C', 15), ('jane', 'A', 12), ('dave', 'B', 10)]
s = sorted(students,key = operator.itemgetter(1,2))
print(s)
#输出[('jane', 'A', 12), ('dave', 'B', 10), ('john', 'C', 15)]

看看下面的练习

Q:找到年龄最大的人,并输出,person = {"li":18,"wang":50,"zhang":20,"sun":22}

常规for循环解法

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def fun(person):
    max = 0
    name = ""
    for key,value in person.items():
        if value > max:
            max = value
            name = key
    print(name)
    print(max)
fun(person)

利用operator.itemgetter函数

 import operator
 person = {"li":18,"wang":50,"zhang":20,"sun":22}
 print(max(person.values()))
 print(max(person.items(),key = operator.itemgetter(1))[0])  # 获取最大值的 key
posted @ 2022-10-07 20:33  I'm_江河湖海  阅读(6)  评论(0)    收藏  举报