Python namedtuple命名元组实现过程解析


Posted in Python onJanuary 08, 2020

这篇文章主要介绍了Python namedtuple命名元组实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

命名元组(namedtuple)是一种带有属性的元组,它们是组合只读数据的很好的方式。

相比一般的元组,构造命名元组需要先导入namedtuple,因为它不在默认的命名空间里。然后通过名字和属性来定义一个命名元组。这会返回一个像类一样的对象,可以进行多次实例化。

命名元组可以被打包、解包以及做所有可以对普通元组做的事,并且还可以像一个对象一样访问它的某个属性。

命名元组非常适合表示“只有数据”的情况,但并不是对所有情况来说都非常理想。和元组及字符串一样,命名元组也是不可变的,因此一旦为属性设定了值之后就不能更改。

如果需要修改存储的数据,用字典类型会更合适。

from collections import namedtuple

# 创建一个namedtuple的学生类,第一个参数是命名元组的名称,第二个参数是命名元组的属性,多个用空格隔开(或者逗号)
Student = namedtuple('Student', 'gender age height')

# 实例化学生,赋予属性,和上面第二个参数相对应
Miles = Student('Male', 24, 1.92)
Mary = Student('Female', 18, 1.68)

# 查看属性
print(Miles)      # 查看Miles所有属性
print(Mary.height)   # 查看Mary的身高
print(Miles[1])     # 通过索引查看Miles的年龄
print('==============')

# 遍历元组
for i in Mary:
  print(i)

输出:

Student(gender='Male', age=24, height=1.92)
1.68
24
==============
Female
18
1.68

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
简单讲解Python中的闭包
Aug 11 Python
对python 自定义协议的方法详解
Feb 13 Python
Python应用领域和就业形势分析总结
May 14 Python
python logging模块的使用总结
Jul 09 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 Python
Python requests模块session代码实例
Apr 14 Python
在python中利用pycharm自定义代码块教程(三步搞定)
Apr 15 Python
python 实现一个图形界面的汇率计算器
Nov 09 Python
Django数据模型中on_delete使用详解
Nov 30 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 #Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 #Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 #Python
pycharm激活码有效到2020年11月底
Sep 18 #Python
pymysql的简单封装代码实例
Jan 08 #Python
pytorch使用 to 进行类型转换方式
Jan 08 #Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 #Python
You might like
PHP设计模式之注册树模式分析
2018/01/26 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
用JQUERY增删元素的代码
2012/02/14 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
python编写爬虫小程序
2015/05/14 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
中专生毕业自我鉴定
2013/11/01 职场文书
学校师德师风整改措施
2014/10/27 职场文书
初中班主任工作随笔
2015/08/15 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL