Python namedtuple ——具名元组
本文主要介绍namedtuple类型对象的创建以及对应属性的访问。
namedtuple位于Python内置模块collections,属于tuple子类,类似于C/C++中的struct结构体,namedtuple中每个元素具有一个名称。
namedtuple类型声明
collections.namedtuple(typename, field_names, verbose=False, rename=False)
参数意义:
typename: 字符串,元组名称
field_names:由元组中元素的名称,可选类型为:字符串列表或空格分隔开字符串或逗号分隔开字符串
verbose: 默认就好
rename: 如果元素名称中含有python的关键字,则必须设置为rename=True
后两个参数采取默认值就好。
1. 调用流程
【1】声明一个namedtuple,此时只是相当于声明出了一种类型,并未具体创建实例
from collections import namedtupleStudent_Class = namedtuple("Student", ["name", "sex", "age"])
【2】实例化,此时真正创建出实例化对象
student = Student_Class("alpha", "male", 15)
print(student)
输出结果:Student(name='alpha', sex='male', age=15)
# 访问元素
student.name ==> "alpha"
student.sex ==> "male"
student.age ==> 15
【注】在创建实例化对象时使用变量名,即Student_Class,而类型名称为Student,因此可以将变量名和类型名统一,后续使用无需区分。
type(student) ==> __main__.Student
Student_Class.__mro__ ==> (__main__.Student, tuple, object)
2. 参数field_names不同类型时具名元组的声明
# 第一种:field_names为空格分隔开字符串
Student_Class = namedtuple("Student", "name sex age")
# 第二种:field_names为逗号分隔开字符串
Student_Class = namedtuple("Student", "name, sex, age")
# 第三章:field_names为字符串列表
Student_Class = namedtuple("Student", ["name", "sex", "age"])
3. 具名元组常用属性
主要包括:
_fields: 返回一个元组,包含所有字段的名称
_make(iterable): 传入可迭代对象创建具名元组实例化对象
_replace(**kwds):修改具名元组中某一个元素值
_asdict(): 将具名元组对象转换成OrderedDict
【以具体实例说明】
(1)创建具名元组对象
In [1]: from collections import namedtuple
In [2]: Student_Class = namedtuple("Student", ["name", "sex", "age"])
In [3]: student = Student_Class(name="alpha", sex="male", age=20)
(2)_fields属性: 返回一个元组,包含所有的字段名称
In [4]: type(student._fields)
Out[4]: tuple
In [5]: student._fields
Out[5]: ('name', 'sex', 'age')
(3)_make(iterable): 传入可迭代对象创建具名元组实例化对象
In [6]: student = Student_Class._make(["beta", "female", 21])
In [7]: student
Out[7]: Student(name='beta', sex='female', age=21)
(4)_replace(**kwds):修改具名元组中某一个元素值
In [8]: student = student._replace(age=50)
In [9]: student
Out[9]: Student(name='beta', sex='female', age=50)
(5)_asdict():将具名元组对象转换成OrderedDict
In [10]: student.as_dict()
Out[10]: OrderedDict([('name', 'beta'), ('sex', 'female'), ('age', 50)])
Python namedtuple ——具名元组相关推荐
- Python 3.7.1 中 namedtuple 具名元组基本用法详解
Python 3.7.1 中 namedtuple 具名元组基本用法详解 转载请注明出处:https://blog.csdn.net/jpch89/article/details/84645251 文 ...
- Python namedtuple(命名元组)使用实例
Python namedtuple(命名元组)使用实例 #!/usr/bin/python3import collectionsMyTupleClass = collections.namedtupl ...
- namedtuple 具名元组详解
1. 概述 namedtuple译作具名元组或命名元组 具名元组可以理解为元组的增强版本,它适用于任何普通元组的应用范围. 具名元组为元组中的每个元素都赋予了含义,从而增强代码可读性,能够让程序员写出 ...
- python之具名元组
具名元组的定义 Python标准库collections中定义了具名元组(namedtuple)工厂函数,它可以构建带字段名的元组. 工厂函数参数详解 变量名 = namedtuple(typenam ...
- python namedtuple (命名元组)用法详解
Python元组的升级版本 – namedtuple(具名元组) 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections. ...
- python namedtuple用法_Python namedtuple
mqslllduoduo Python元组的升级版本 -- namedtuple(具名元组) 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入 ...
- 具名元组namedtuple
具名元组namedtuple 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数, ...
- python中元组拆包_Python 元组拆包和具名元组解析
Python 元组拆包和具名元组解析 前言 在 Python 中元组是一个相较于其他语言比较特别的一个内置序列类型有些 python 入门教程把元组成为不可变的列表, 这种说法是不完备的, 其并没有完 ...
- python 元组拆包_Python元组拆包和具名元组解析实例详解
前言 在Python中元组是一个相较于其他语言比较特别的一个内置序列类型.有些python入门教程把元组成为"不可变的列表",这种说法是不完备的,其并没有完整的概括元组的特点.除了 ...
最新文章
- 【数据结构】关键路径
- 飞桨PaddlePaddle深度学习实战
- yolov5 代码版,去掉配置文件
- 服务器功率一般多少_单机柜供电能力提升后,选择1U服务器还是2U服务器?
- WP7开发—Silverlight多点触摸事件详解【含Demo代码】
- Cppunit 源码 SynchronizedObject
- C++/OpenCV:将数据保存到xml、yaml / 从xml、yaml读取数据
- interllij IDEA2017快捷键风格修改为myEclipse快捷键风格
- 启动程序端口被占用Address already in use: bind解决方案
- Windows2000计划任务对机器进行重新启动
- MVC操作SQL数据库增删改查
- iOS开发之UIControlEventEditingChanged失效
- 微积分是研究连续变化的数学理论
- PowerBuilder反编译,PowerBuilder 反编译
- 数据挖掘算法和实际应用案例
- opencv半透明填充不规则区域
- AndroidAPI
- 在Windows上部署一个FHIR服务器(HAPI FHIR)
- spark Hash Shuffle内幕彻底解密
- 【每日最爱一句】2013.07.31
热门文章
- LOL英雄联盟自动打人机训练升级【CircuitPython】
- react、react-redux、redux-thunk、react-saga运用
- 缓解环境噪声对音频质量干扰
- Protel 99 SE使用心得
- 思考是勤奋的一部分,人最大的懒惰是思想懒惰
- Python模拟屏幕点击自动完成词达人任务(附源码)
- 工业POE交换机出现不供电怎么办?
- 服务器设备管理系统,用勤哲Excel服务器实现设备管理系统
- pywinauto 自动进行远程桌面登陆 remote desktop connection
- 华为手机怎么隐藏按键图标_原来华为手机右上角隐藏扫描仪!纸质档一键电子化,真的涨知识了...