zoukankan      html  css  js  c++  java
  • python中的operator.itemgetter函数

    operator.itemgetter函数
    operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号。看下面的例子

    a = [1,2,3] 
    >>> b=operator.itemgetter(1)      //定义函数b,获取对象的第1个域的值
    >>> b(a) 
    
    2
    
    >>> b=operator.itemgetter(1,0)  //定义函数b,获取对象的第1个域和第0个的值
    >>> b(a) 
    (2, 1)

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

    sorted函数用来排序,sorted(iterable[, cmp[, key[, reverse]]])

    其中key的参数为一个函数或者lambda函数。所以itemgetter可以用来当key的参数

    a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

    根据第二个域和第三个域进行排序

    sorted(students, key=operator.itemgetter(1,2))

    • 用 operator 函数进行多级排序
     students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]  
    >>> sorted(students, key=itemgetter(1,2))  # sort by grade then by age  
    [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]  
    ## 对字典排序
    >>> d = {'data1':3, 'data2':1, 'data3':2, 'data4':4}  
    >>> sorted(d.iteritems(), key=itemgetter(1), reverse=True)  
    [('data4', 4), ('data1', 3), ('data3', 2), ('data2', 1)]  
     
  • 相关阅读:
    Jzoj5417 方阵
    Jzoj5414 幸运值
    PAT甲级——A1036 Boys vs Girls
    PAT甲级——A1035 Password
    PAT甲级——A1030 Travel Plan
    PAT甲级——A1026 Table Tennis
    PAT甲级——A1022 Digital Library
    PAT甲级——A1018 Public Bike Management
    PAT甲级——A1021 Deepest Root
    PAT甲级——A1020 Tree Traversals
  • 原文地址:https://www.cnblogs.com/baobaotql/p/10780572.html
Copyright © 2011-2022 走看看