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)]

        

  • 相关阅读:
    2019 SDN阅读作业
    第02组 Alpha冲刺(2/6)
    2019 SDN上机第3次作业
    第02组 Alpha冲刺(1/6)
    2019 SDN上机第2次作业
    bzoj 3207 可持久化线段树
    bzoj 3524 可持久化线段树
    HDU 4757 可持久化trie树
    bzoj 3197 DP
    poj 2104 可持久化线段树
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10299911.html
Copyright © 2011-2022 走看看