您的位置:首页 > 编程语言 > Python开发

operator.itemgetter(*items) @ python

2017-09-05 09:57 549 查看
转自官方文档

operator.itemgetter(item)

operator.itemgetter(*items)

Return a callable object that fetches item from its operand using the operand’s [b]getitem()[/b] method. If multiple items are specified, returns a tuple of lookup values.

eg:

>>>f = itemgetter(2),
>>>f(r)
得到r[2]的值
>>>g = itemgetter(2, 5, 3),
>>>g(r)
得到(r[2], r[5], r[3])的值


相当于

def itemgetter(*items):
if len(items) == 1:
item = items[0]
def g(obj):
return obj[item]
else:
def g(obj):
return tuple(obj[item] for item in items)
return g


The items can be any type accepted by the operand’s [b]getitem()[/b] method. Dictionaries accept any hashable value. Lists, tuples, and strings accept an index or a slice:

>>> itemgetter(1)('ABCDEFG')
'B'
>>> itemgetter(1,3,5)('ABCDEFG')
('B', 'D', 'F')
>>> itemgetter(slice(2,None))('ABCDEFG')
'CDEFG'

New in version 2.4.

Changed in version 2.5: Added support for multiple item extraction.

Example of using itemgetter() to retrieve specific fields from a tuple record:

>>> inventory = [('apple', 3), ('banana', 2), ('pear', 5), ('orange', 1)]
>>> getcount = itemgetter(1)
>>> map(getcount, inventory)
[3, 2, 5, 1]
>>> sorted(inventory, key=getcount)
[('orange', 1), ('banana', 2), ('apple', 3), ('pear', 5)]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python