Python的defaultdict模块和namedtuple模块
来源:互联网 发布:新手开淘宝店怎么运营 编辑:程序博客网 时间:2024/05/15 04:20
In [1]: from collections import defaultdictIn [2]: s = [('xiaoming', 99), ('wu', 69), ('zhangsan', 80), ('lisi', 96), ('wu', 100), ('yuan', 98), ('xiaoming', 89)]In [3]: d = defaultdict(list)In [4]: for k, v in s: ...: d[k].append(v) ...: In [5]: dOut[5]: defaultdict(<type 'list'>, {'lisi': [96], 'xiaoming': [99, 89], 'yuan': [98], 'zhangsan': [80], 'wu': [69, 100]})In [6]: for k, v in d.items(): ...: print '%s: %s' % (k, v) ...: lisi: [96]xiaoming: [99, 89]yuan: [98]zhangsan: [80]wu: [69, 100]
s = [('xiaoming', 99), ('wu', 69), ('zhangsan', 80), ('lisi', 96), ('wu', 100), ('yuan', 98), ('xiaoming', 89)]d = {}for k, v in s: d.setdefault(k, []).append(v)
def __missing__(self, key): # Called by __getitem__ for missing key if self.default_factory is None: raise KeyError((key,)) self[key] = value = self.default_factory() return value
In [1]: class MyDefaultDict(dict): ...: def __missing__(self, key): ...: self[key] = 'default' ...: return 'default' ...: In [2]: my_default_dict = MyDefaultDict()In [3]: my_default_dictOut[3]: {}In [4]: print my_default_dict['test']defaultIn [5]: my_default_dictOut[5]: {'test': 'default'}
# http://code.activestate.com/recipes/523034/try: from collections import defaultdictexcept: class defaultdict(dict): def __init__(self, default_factory=None, *a, **kw): if (default_factory is not None and not hasattr(default_factory, '__call__')): raise TypeError('first argument must be callable') dict.__init__(self, *a, **kw) self.default_factory = default_factory def __getitem__(self, key): try: return dict.__getitem__(self, key) except KeyError: return self.__missing__(key) def __missing__(self, key): if self.default_factory is None: raise KeyError(key) self[key] = value = self.default_factory() return value def __reduce__(self): if self.default_factory is None: args = tuple() else: args = self.default_factory, return type(self), args, None, None, self.items() def copy(self): return self.__copy__() def __copy__(self): return type(self)(self.default_factory, self) def __deepcopy__(self, memo): import copy return type(self)(self.default_factory, copy.deepcopy(self.items())) def __repr__(self): return 'defaultdict(%s, %s)' % (self.default_factory, dict.__repr__(self))
from collections import namedtuple# 变量名和namedtuple中的第一个参数一般保持一致,但也可以不一样Student = namedtuple('Student', 'id name score')# 或者 Student = namedtuple('Student', ['id', 'name', 'score'])students = [(1, 'Wu', 90), (2, 'Xing', 89), (3, 'Yuan', 98), (4, 'Wang', 95)]for s in students: stu = Student._make(s) print stu# Output:# Student(id=1, name='Wu', score=90)# Student(id=2, name='Xing', score=89)# Student(id=3, name='Yuan', score=98)# Student(id=4, name='Wang', score=95)
阅读全文
0 0
- Python的defaultdict模块和namedtuple模块
- Python的defaultdict模块和namedtuple模块
- Python 的 defaultdict 模块和 namedtuple 模块(xianglong.me)
- defaultdict 和 namedtuple 的使用(python)
- python模块collections中namedtuple()的理解
- Python的collections模块及namedtuple详解
- python模块collections中namedtuple()的理解
- collections模块里的:namedtuple
- Python的collections模块中defaultdict类型的用法
- python中collections 模块里的defaultdict()函数
- python基础-OrderedDict、defaultdict、Counter、时间模块、sys模块
- Python 模块的导入 和 模块名称
- Python 的defaultdict用法
- python的模块和包
- python的模块和包
- python的变量和模块
- python学习十:copy模块、collections模块中的defaultdict、pydiction完成在vim中tab补全
- Python 模块和包,使用自定义的模块和包
- 简单字符串加密工具
- 堆和栈的区别
- ElasticSearch集群搭建实例
- Spring AOP实现(API实现)
- linux下路由配置
- Python的defaultdict模块和namedtuple模块
- 概率论与数据挖掘——概率基本知识
- spring对事务进行管理
- Vue 基础模板语法
- poj 2393
- HDU
- NLP学习资料
- 二维数组的声明及初始化
- BZOJ 1036 [ZJOI2008]树的统计Count