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

作者:xrzs 时间:2022-06-01 19:59:42 

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,namedtuple
0
投稿

猜你喜欢

  • 玩转python爬虫之URLError异常处理

    2021-03-22 07:36:34
  • Python爬虫Scrapy框架CrawlSpider原理及使用案例

    2023-12-23 07:41:55
  • 在vue.js中使用JSZip实现在前端解压文件的方法

    2024-04-22 22:15:34
  • 另外一种斜体的导航条

    2008-11-05 12:24:00
  • pycharm使用技巧之自动调整代码格式总结

    2021-08-28 08:13:18
  • mysql myisam 优化设置设置

    2024-01-15 11:04:52
  • linux下通过go语言获得系统进程cpu使用情况的方法

    2024-05-08 10:13:01
  • pytorch 数据处理:定义自己的数据集合实例

    2021-09-11 06:10:21
  • SQLSERVER 本地查询更新操作远程数据库的代码

    2024-01-21 05:16:47
  • pytest fixtures装饰器的使用和如何控制用例的执行顺序

    2023-04-11 22:56:09
  • 一个20行左右的强$代码

    2009-12-25 15:22:00
  • 详解Python3 pandas.merge用法

    2023-07-04 20:26:48
  • mysql主从库不同步问题解决方法

    2024-01-26 03:57:19
  • python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法

    2023-10-06 12:13:03
  • 详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强

    2022-12-26 18:01:16
  • javascript实现依次输入input自动定焦

    2024-04-28 10:19:12
  • 浅谈MySQL中的group by

    2024-01-18 22:53:54
  • phpinfo 系统查看参数函数代码

    2024-05-13 09:56:51
  • 浅谈Pandas 排序之后索引的问题

    2022-03-18 12:28:32
  • 如何高效地访问记录集?

    2009-11-22 19:25:00
  • asp之家 网络编程 m.aspxhome.com