Python的collections模块中namedtuple结构使用示例


Posted in Python onJuly 07, 2016

namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按照 index 访问,没有明确的称呼,而 namedtuple 就是事先把这些 item 命名,以后可以方便访问。

from collections import namedtuple


# 初始化需要两个参数,第一个是 name,第二个参数是所有 item 名字的列表。
coordinate = namedtuple('Coordinate', ['x', 'y'])

c = coordinate(10, 20)
# or
c = coordinate(x=10, y=20)

c.x == c[0]
c.y == c[1]
x, y = c

namedtuple 还提供了 _make 从 iterable 对象中创建新的实例:

coordinate._make([10,20])

再来举个栗子:

# -*- coding: utf-8 -*-
"""
比如我们用户拥有一个这样的数据结构,每一个对象是拥有三个元素的tuple。
使用namedtuple方法就可以方便的通过tuple来生成可读性更高也更好用的数据结构。
"""
from collections import namedtuple
websites = [
 ('Sohu', 'http://www.google.com/', u'张朝阳'),
 ('Sina', 'http://www.sina.com.cn/', u'王志东'),
 ('163', 'http://www.163.com/', u'丁磊')
]
Website = namedtuple('Website', ['name', 'url', 'founder'])
for website in websites:
 website = Website._make(website)
 print website
 print website[0], website.url

结果:

Website(name='Sohu', url='http://www.google.com/', founder=u'\u5f20\u671d\u9633')
Sohu http://www.google.com/
Website(name='Sina', url='http://www.sina.com.cn/', founder=u'\u738b\u5fd7\u4e1c')
Sina http://www.sina.com.cn/
Website(name='163', url='http://www.163.com/', founder=u'\u4e01\u78ca')
163 http://www.163.com/
Python 相关文章推荐
Python模拟三级菜单效果
Sep 11 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
Python Datetime模块和Calendar模块用法实例分析
Apr 15 Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
pytorch:实现简单的GAN示例(MNIST数据集)
Jan 10 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
python文本处理的方案(结巴分词并去除符号)
May 26 Python
Python预测分词的实现
Jun 18 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 #Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 #Python
Python处理json字符串转化为字典的简单实现
Jul 07 #Python
全面了解python字符串和字典
Jul 07 #Python
对于Python中RawString的理解介绍
Jul 07 #Python
python变量不能以数字打头详解
Jul 06 #Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 #Python
You might like
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
利用php输出不同的心形图案
2016/04/22 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
python常用函数详解
2016/09/13 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
电子商务专业学生的自我鉴定
2013/11/28 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
电气个人求职信范文
2014/02/04 职场文书
预备党员综合考察材料
2014/05/31 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
信访稳定工作汇报
2014/10/27 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书