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实现多线程行情抓取工具的方法
Feb 28 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
python通过http下载文件的方法详解
Jul 26 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
Nov 29 Python
pytorch 求网络模型参数实例
Dec 30 Python
opencv python在视屏上截图功能的实现
Mar 05 Python
python新手学习可变和不可变对象
Jun 11 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 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
php flv视频时间获取函数
2010/06/29 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
详解PHP数组赋值方法
2015/11/07 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
5 cool javascript apps
2007/03/24 Javascript
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
React 组件间的通信示例
2018/06/14 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
python3 xpath和requests应用详解
2020/03/06 Python
500行python代码实现飞机大战
2020/04/24 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
给面试官的感谢信
2014/02/01 职场文书
户外拓展活动方案
2014/02/11 职场文书
出生证明公证书
2014/04/09 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
ktv筹备计划书
2014/05/03 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
爱心捐助活动总结
2015/05/09 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server