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
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16761844.html