python—operator的itemgetter

itemgetter()用于定义获取对象第几维的数据的一个函数,并非是直接取值,需作用到具体的对象(列表、元祖、字典等)才会进行取值。

list1 = {"name":"hanqingqing","id":7,"sex":"女","height":160}
dd = (5,4,3,2)
list2 = [(1,3,5),(2,4,8),(3,6,9)]
a = itemgetter(1)   #定义一个函数,用于获取对象的第*维的值
aa = a(dd)   #aa = 4  将定义的函数用在dd元祖中,即获取dd元祖第1维的值
b = itemgetter("sex")   #定义一个函数,用于获取对象的某个键值数据
bb = b(list1)   #bb = "女"  获取list1中键值为"sex"的数据值
c = itemgetter(0,1) #定义一个函数,用于获取对象的第0维和第1维的值,并以元祖形式返回
cc = c(list2)   #cc = ((1, 3, 5), (2, 4, 8))

当itemgetter()被传入多个值时,作用的函数将以元祖形式返回指定索引的值,如c。

排序:

l = []
print("请输入:")
while True:

    s = input()
    if not s:
        break
    l.append(tuple(s.split(",")))
print(sorted(l, key=itemgetter(0,1,2)))   #itemgetter(0,1,2) 按0,1,2维度进行排序

sorted()需接受一个key参数,这个参数是callable类型,key(itemgetter())会作用于列表l,然后返回被用来排序的值。itemgetter()就是负责创建这个callable对象的。如果传多个参数给itemgetter(),它生成的callabe对象会返回一个包含所有值的元组,sort()函数会根据元组中元素顺序去排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值