# 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进行测试,这里不做详细测试

最新文章

  1. python基础05 if选择
  2. c#的逻辑运算符重载(二)
  3. Ajax嵌套调用 (jquery) $.ajaxSettings.async = false;
  4. HDU 3999 The order of a Tree 二叉搜索树 BST
  5. ios -- NSdata 与 NSString,Byte数组,UIImage 的相互转换(转)
  6. [leetcode]二分查找总结
  7. iOS 操作系统架构
  8. C# - List操作 - 按照字母排序
  9. MRD-5012型RS232,RS485有源隔离中继模块,采用磁隔离技术,金升阳DC-DC隔离电源,纯硬件自适应方向,速度高达256000bps
  10. LeetCode第十三题-将罗马数字转化为数字
  11. Emacs Org-mode 4 超连接
  12. LeetCode 203. Remove Linked List Elements 移除链表元素 C++/Java
  13. underscore.js源码解析【对象】
  14. css3图片旋转
  15. Word 如何设置空白页不编码,其他页码连续
  16. python-flask-SQLAlchemy-Utils组件
  17. mac 蓝牙开启调试模式
  18. node vue 开发环境部署时,外部访问页面出现: Invalid Host header 服务器域名访问出现的问题
  19. javascript 实现页面加载完的操作
  20. Jmeter————监控服务器性能

热门文章

  1. Delphi 10.3实现Android App的动态权限申请
  2. python day05作业
  3. JAVA线程sleep与wait区别
  4. 【webdriver自动化】使用unittest实现自动登录163邮箱然后新建一个联系人
  5. SQL*Plus连接符拼接输出
  6. Subsequence Count 2017ccpc网络赛 1006 dp+线段树维护矩阵
  7. [LeetCode&Python] Problem 242. Valid Anagram
  8. [LeetCode&Python] Problem 448. Find All Numbers Disappeared in an Array
  9. 极大极小搜索思想+(α/β)减枝 【转自-----https://blog.csdn.net/hzk_cpp/article/details/79275772】
  10. inner join 与一般笛卡尔积的区别