zoukankan      html  css  js  c++  java
  • operator笔记

    # operator.itemgetter(*items) # 获取item

    >>> from operator import itemgetter
    # list使用下标进行返回
    >>> a
    [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
    >>> itemgetter(1)(a) # 获取a中下标为1的元组
    ('b', 2)
    >>> itemgetter(1,3)(a) # 同时获取多个元组
    (('b', 2), ('d', 4))
    # dict使用键来返回
    >>> a = {'one': 1, 'two':2, 'three':3}
    >>> itemgetter('one')(a)
    1
    >>> itemgetter('one', 'two')(a)
    (1, 2)

    # 使用attrgetter()获取其属性
    # 《python cookbook》 书籍的例子

    from operator import attrgetter
    class User(object):
    def __init__(self, uid):
    self.uid = uid
    def __repr__(self):
    return 'User({})'.format(self.uid)
    users = [User(25), User(14), User(100)]
    print(sorted(users, key=attrgetter('uid')))
    """
    D:笔记python电子书Python3>python index.py
    [User(14), User(25), User(100)]
    """

    # 使用attrgetter可以使用lambda来进行代替:

    class User(object):
    def __init__(self, uid):
    self.uid = uid
    def __repr__(self):
    return 'User({})'.format(self.uid)
    users = [User(25), User(14), User(100)]
    print(sorted(users, key=lambda u: u.uid))
    """
    D:笔记python电子书Python3>python index.py
    [User(14), User(25), User(100)]
    """

    《python cookbook》书籍中提到attrgetter()的速度相对来说比lambda快一些,具体可使用pytest进行测试,这里不做详细测试

  • 相关阅读:
    Java集合学习(8):LinkedList
    Java集合学习(7):ArrayList
    Java集合学习(6):LinkedHashSet
    数据结构与算法19—排序
    ZooKeeper基本介绍
    Java集合学习(5):LinkedHashMap
    Java集合学习(4):HashTable
    Java集合学习(3):HashSet
    java集合学习(2):Map和HashMap
    HTML DOM的创建,删除及替换
  • 原文地址:https://www.cnblogs.com/namejr/p/9955766.html
Copyright © 2011-2022 走看看