python 具名元组
来源:互联网 发布:mac把照片导出到桌面 编辑:程序博客网 时间:2024/06/03 14:18
collection.namedtuple是一个工厂函数, 它可以用来构建一个带字段名的元组和一个有名字的类——这个带名字的类对调试程序有很大帮助。而且用namedtuple构建的类的实例所消耗的内存和元组是一样的, 因为字段名都被存在对应的类里面。这个实例和消耗的对象实例比起来也要小一点, 因为Python不会用__dict__来存放这些属性。
>>> from collections import namedtuple>>> City = namedtuple('City', 'name country population coordinates') ( 1 )>>> tokyo = City('Tokyo', 'JP', 36.933, (35.689722, 139.691667)) ( 2 ) >>> tokyo('Tokyo', 'JP', 36.933, (35.689722, 139.691667))
>>> tokyo[1]'JP'
>>> tokyo.polution36.993
>>> tokyo.coordinates ( 3 )(35.689722, 139.691667)
( 1 )创建一个具名元组需要两个参数, 一个是类名, 另一个是各字段的名字。后者可以是由数个字符串组成的可迭代对象, 或者是由空格分隔开的字段组成的字符串。
( 2 )存放在对应字段里的数据要以一串参数的形式传入构造函数中(元组的构造函数只接受单一的可迭代对象)
( 3 )我们可以通过字段名或者位置信息来获取一个字段信息。
除了从普通元组那里继承来的属性之外, 具名元组还有一些自己专属的属性。比如_fields类属性,类方法_make(iterable)和实例方法_asdict()。
>>> City._fields ( 1 )('name', 'country', 'population', 'coordinates')>>> LatLong = namedtuple('LatLong', 'lat long')>>> delhi_data = ('Delhi NCR', 'IN', 21.935, LatLong(28.613889, 77.208889))>>> delhi = City._make(delhi_data) ( 2 )>>> delhi._asdict() ( 3 )OrderedDict([('name', 'Delhi NCR'), ('country', 'IN'), ('population', 21.935), ('coordinates', LatLong(lat=28.613889, long=77.208889))])>>> for key, value in delhi._asdict().items():... print(key + ':', value)...name: Delhi NCRcountry: INpopulation: 21.935coordinates: LatLong(lat=28.613889, long=77.208889)>>>
( 1 )_field属性是一个包含这个类所有字段名称的元组。
( 2 )用_make()通过接受一个可迭代对象来生成这个类的一个实例, 它的作用和City(*delhi_data)是一样的
( 3 )_asdict()把具名元组以collection.OrderedDict的形式返回。它的第二个角色则是充当一个不可变的列表。
- python 具名元组
- Python namedtuple 具名元组
- ES6-正则的扩展-具名组匹配
- Python 元组
- Python 使用元组
- Python组元陷阱
- python元组学习
- Python:元组函数
- Python 元组 小结
- PYthon中的元组
- python学习-元组
- python 元组
- Python 元组
- python 元组
- python 元组
- Python元组类型
- Python 元组
- python元组
- 面对云计算价格战,Google云说“不”
- 阿里云 安装mysql5.7.20
- poj 1679 The Unique MST
- jq:自定义事件
- Badboy自动化测试工具5 参数化 Add Variable
- python 具名元组
- Codeforces Round #443 (Div.2)
- webApi2--get与Post提交
- 科大讯飞:携手NVIDIA后,应用领域效率提升了50倍 | GTC 2017
- 图片文件批量重命名(Python)
- android--------Handler 消息传递机制
- maven是如何实现继承的
- SSL2796 2017年10月27日提高组 油滴拓展(贪心)
- 新智造对话信智资本陈可言:微软出来直接给钱