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执行get提交的方法
Apr 29 Python
python抓取网页中图片并保存到本地
Dec 01 Python
Python检测网站链接是否已存在
Apr 07 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
Jan 09 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
python集合的创建、添加及删除操作示例
Oct 08 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
python制作一个简单的gui 数据库查询界面
Nov 19 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中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
关于COOKIE个数与大小的问题
2011/01/17 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
Python try except finally资源回收的实现
2021/01/25 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
大学毕业感言一句话
2014/02/06 职场文书
教堂婚礼主持词
2014/03/14 职场文书
艺术节主持词
2014/04/02 职场文书
竞聘上岗演讲
2014/05/19 职场文书
护士实习求职信
2014/06/22 职场文书
趣味运动会简讯
2015/07/20 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers