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 相关文章推荐
在 Django/Flask 开发服务器上使用 HTTPS
Jul 03 Python
python将图片文件转换成base64编码的方法
Mar 14 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
Python datetime包函数简单介绍
Aug 28 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
Python解压 rar、zip、tar文件的方法
Nov 19 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
Python无头爬虫下载文件的实现
Apr 02 Python
Python中的xlrd模块使用原理解析
May 21 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
实操Python爬取觅知网素材图片示例
Nov 27 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的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
javascript 定义新对象方法
2010/02/20 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
python中的列表推导浅析
2014/04/26 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
董事长秘书职责
2014/01/31 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
践行三严三实心得体会
2014/10/13 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
捐款感谢信
2015/01/20 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
Win11查看设备管理器
2022/04/19 数码科技