python operator.itemgetter
2014-01-30 23:01
549 查看
python四个魔法方法__len__,__getitem__,__setitem__,__delitem_
[python] viewplaincopyprint?
class DictDemo:
def __init__(self,key,value):
self.dict = {}
self.dict[key] = value
def __getitem__(self,key):
return self.dict[key]
def __setitem__(self,key,value):
self.dict[key] = value
dictDemo = DictDemo('key0','value0')
print(dictDemo['key0']) #value0
dictDemo['key1'] = 'value1'
print(dictDemo['key1']) #value1
import weakref
实现weakref.ValueDict() descriptor 重写 set方法
import weakref #实现通过id获取object _id2obj_dict = weakref.WeakValueDictionary() def remember(obj): oid = id(obj) _id2obj_dict[oid] = obj return oid def id2obj(oid): return _id2obj_dict[oid]
----
operatoris
a built-in module providing a set of convenient operators. In two words
operator.itemgetter(n)constructs
a callable that assumes iterable object (list, tuple, set) as input an fetches n-th element out of it.
So, you can't use
key=a[x][1]there,
because python have no idea what
xis.
Instead, you could use a
lambdafunction
(
elemis
just a variable name, no magic here):
a.sort(key=lambda elem: elem[1])
Or just ordinary function:
def get_second_elem(iterable): return iterable[1] a.sort(key=get_second_elem)
--------------------
>>> students = ['dave', 'john', 'jane'] >>> newgrades = {'john': 'F', 'jane':'A', 'dave': 'C'} >>> sorted(students, key=newgrades.__getitem__) ['jane', 'dave', 'john']
>>> sorted(student_tuples, key=itemgetter(2), reverse=True) [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] >>> sorted(student_objects, key=attrgetter('age'), reverse=True) [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
相关文章推荐
- Python3:operator模块中的itemgetter()函数
- Python operator.itemgetter函数理解
- Python: sorted,operator.itemgetter的用法
- python sorted operator.itemgetter
- python学习 -- operator.itemgetter(), list.sort/sorted 以及lambda函数
- python——sorted函数、sort函数以及operator.itemgetter的使用
- operator.itemgetter(*items) @ python
- python 字典列表排序operator.itemgetter()
- python排序sorted()与operator.itemgetter()函数
- python中的sorted、iteritems和operator.itemgetter
- python中operator.itemgetter
- Python中的sorted以及operator.itemgetter的用法
- python的operator.itemgetter('click')用于定义获取'click'项的函数
- python sorted函数(结合使用lambda和operator.itemgetter()来对字典进行排序)
- python的operator.itemgetter('click')用于定义获取'click'项的函数
- Python中的sorted()函数以及operator.itemgetter()函数
- python3使用operator.itemgetter对字典进行排序
- Python学习3-Panel,DataFrame, operator.itemgetter,sorted()
- operator.itemgetter的用法【转】
- Python中的sorted函数以及operator.itemgetter函数