zoukankan      html  css  js  c++  java
  • operator

    这个模块包含一组用C实现的函数,这些函数能够实现 Python 对应的运算操作符,常见的用法如下:

    In [1]: import operator
    
    In [2]: operator.lt(2, 3)    # 判断第一个参数是否小于第二个参数
    Out[2]: True
    
    In [3]: operator.gt(2, 3)    # 判断第一个参数是否大于第二个参数
    Out[3]: False
    
    In [4]: operator.ne(2, 3)    # 判断第一个参数是否不等于第二个参数
    Out[4]: True
    
    In [5]: operator.abs(-5)     # 相当于abs()函数,用于取一个数的绝对值
    Out[5]: 5
    
    In [6]: operator.pow(2, 3)   # 相当于pow()函数,表示2的3次方
    Out[6]: 8

    特殊用法:operator模块提供的 itemgetter() 函数用于获取一个可迭代对象的指定索引的数据,用法如下

    In [12]: l = ['a', 'b', 'c']              # 先定义一个可迭代对象
    
    In [13]: op = operator.itemgetter(1)      # operator.itemgetter(1) 表示获取索引值为1的数据,我们把他赋值给op,op相当于一个函数
    
    In [14]: op(l)                            # op这个函数接收一个可迭代的对象,结果相当于获取这个可迭代对象的索引值为1的数据
    Out[14]: 'b'
    
    In [15]: op = operator.itemgetter(1, 2)   # 同上,表示获取索引值为1或索引值为2的数据
    
    In [16]: op(l)
    Out[16]: ('b', 'c')

    optrator.itemgetter() 通常与 sorted() 函数结合使用,用来对字典进行排序:

    In [1]: import operator
    
    In [2]: x = {1:2, 3:4, 4:3, 2:1, 0:0}
    
    In [3]: sorted(x.iteritems(), key=operator.itemgetter(0))    # 根据字典的key进行排序
    Out[3]: [(0, 0), (1, 2), (2, 1), (3, 4), (4, 3)]
    
    In [4]: sorted(x.iteritems(), key=operator.itemgetter(1))    # 根据字典的value进行排序
    Out[4]: [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

        

  • 相关阅读:
    洛谷.3254.圆桌问题(最大流ISAP)
    BZOJ.2639.矩形计算(二维莫队)
    BZOJ.2724.[Violet 6]蒲公英(静态分块)
    BZOJ.4241.历史研究(回滚莫队 分块)
    BZOJ.4542.[HNOI2016]大数(莫队)
    SPOJ.COT2 Count on a tree II(树上莫队)
    BZOJ.3757.苹果树(树上莫队)
    洛谷.2325.[SCOI2005]王室联邦(贪心)
    BZOJ.1299.[LLH邀请赛]巧克力棒(博弈论 Nim)
    HDU.2516.取石子游戏(博弈论 Fibonacci Nim)
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10299911.html
Copyright © 2011-2022 走看看