博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的collections模块中namedtuple结构使用示例
阅读量:5982 次
发布时间:2019-06-20

本文共 1290 字,大约阅读时间需要 4 分钟。

 
namedtuple顾名思义,就是名字+元组的数据结构,下面就来看一下Python的collections模块中namedtuple结构使用示例
namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按照 index 访问,没有明确的称呼,而 namedtuple 就是事先把这些 item 命名,以后可以方便访问。
1
2
3
4
5
6
7
8
9
10
11
12
13
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 对象中创建新的实例:

1
coordinate._make([
10
,
20
])

再来举个栗子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- coding: utf-8 -*-
"""
比如我们用户拥有一个这样的数据结构,每一个对象是拥有三个元素的tuple。
使用namedtuple方法就可以方便的通过tuple来生成可读性更高也更好用的数据结构。
"""
from
collections
import
namedtuple
websites
=
[
 
(
'Sohu'
,
''
, u
'张朝阳'
),
 
(
'Sina'
,
''
, u
'王志东'
),
 
(
'163'
,
''
, u
'丁磊'
)
]
Website
=
namedtuple(
'Website'
, [
'name'
,
'url'
,
'founder'
])
for
website
in
websites:
 
website
=
Website._make(website)
 
print
website
 
print
website[
0
], website.url

结果:

 

1
2
3
4
5
6
Website(name='Sohu', url='', founder=u'\u5f20\u671d\u9633')
Sohu
Website(name='Sina', url='', founder=u'\u738b\u5fd7\u4e1c')
Sina
Website(name='163', url='', founder=u'\u4e01\u78ca')
163

转载于:https://www.cnblogs.com/fmgao-technology/p/9080514.html

你可能感兴趣的文章
Sql异常①
查看>>
使用 JavaScript 将网站后台的数据变化实时更新到前端-【知乎总结】
查看>>
Jquery 校验文本框只能输入负数、小数、整数
查看>>
fanc委托在项目中使用
查看>>
PHP 命名空间
查看>>
层次分析法
查看>>
[转] xgboost
查看>>
ASP.NET一些常用的东西
查看>>
音乐播放类应用后台播放耗电评测报告
查看>>
2015百度之星 单调区间
查看>>
项目经理之什么是项目管理
查看>>
Ubuntu安装Chrome的方法
查看>>
用批处理来操纵你的光驱
查看>>
SQL 问题记录
查看>>
vim修改时自动备份配置文件小脚本
查看>>
我的友情链接
查看>>
官宣:深度剖析免费OA系统是如何盈利
查看>>
vue2.0学习笔记(一)搭建学习环境
查看>>
从系统到web一层一层分析系统变卡的原因
查看>>
数据库热备产品都有哪些?各有什么优缺点?
查看>>