本文主要介绍

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 namedtuple

Student_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命名元组--命名元组,Pythonnamedtuple,具名相关推荐

  1. 为元组的每个元素命名

    1 为元组的每个项目命名,提高程序的可读性 2 #定义一系列数据变量 3 4 #分别赋值为0,1,2,3 5 NAME,SEX,AGE,SCHOOL = range(4) 6 7 student = ...

  2. python基础:序列(列表、元组、字符串)、函数、字典、集合

    Python语言运行环境: windows linux unix Macos等等 博客记录内容: Python3的所有语法.面向对象思维.运用模块进行编程.游戏编程.计算机仿真. Python是什么类 ...

  3. 一句python,一句R︱列表、元组、字典、数据类型、自定义模块导入(格式、去重)

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas中有类似R中的read.table的功能,而 ...

  4. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换

    python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...

  5. python截取逗号_Python基础知识: 元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...

  6. 【Python】Python入门:4000字能把元组tuple讲透吗?

    公众号:尤而小屋 作者:Peter 编辑:Peter 在前面介绍的python数据类型:列表list,我们发现list是可以进行修改的.但是有时候,我们需要创建一系列不可修改的元素,此时Python中 ...

  7. Python中高级变量类型(列表,元组,字典,字符串,公共方法...)

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  8. python元组类型_Python数据类型之元组

    导语:元组介绍访问元组修改元组删除元组元组运算符元组内置函数 元组介绍 与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组的创建,只需要在括号中添加元素,并使用逗号隔 ...

  9. python中如何调用或修改元组中的元素_python 元组的使用方法

    元组--tuple 列表非常适合用于存储在程序运行期间可能变化的数据集. 列表是可以修改的,但元组是不可修改的 Python将不能修改的值称为不可变的,而不可变的列表被称为元组 1. 元组的创建和删除 ...

  10. python实现批量图片/文件重命名

    python实现批量图片/文件重命名 import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = ' ...

最新文章

  1. Bellman-Ford 单源最短路径算法
  2. version.dll劫持注入模版
  3. 玩cf出现outofmemory_完美解决outofmemory|Win7系统CF出现out of memory的解决方法
  4. 让你的PHP4和PHP5共存
  5. Drools:基于PHREAK堆栈的评估和向后链接
  6. python netsnmp_python net-snmp使用
  7. 改造一下jeecg中的部门树
  8. FPGA中计数器设计探索
  9. 电芯容量在前期循环中容量增加_锂离子电池容量“跳水”背后元凶找到了!——非均匀压力...
  10. 刚走上管理岗位的人要怎么做?
  11. Mac小技巧:在mac上怎么把png转换成jpg
  12. Android 表单之 TextView(文本框)详解
  13. 计算机会计学ufo报表,计算机会计学 第四章 报表子系统.pdf
  14. 常见问题数组索引越界异常
  15. 【现代卫星导航系统】之北斗卫星导航系统
  16. 【数据分享】全国县市2000-2020年医疗卫生机构床位数数据(excel和shp格式)
  17. 英特尔服务器级cpu型号含义,intel服务器cpu命名规则
  18. postgresql fdw mysql_PostgreSQL使用MySQL外表(mysql_fdw)
  19. 原创视频 | 我可以自学编程吗?解答新手学编程的疑惑!
  20. 合同计算问题的计算公式与计算方法

热门文章

  1. SQL 必知必会·笔记6使用数据处理函数
  2. 使用lkjson处理Json数据
  3. mysql单表查询怎么做_mysql单表查询
  4. ScheduledThreadPoolExecutor之scheduleWithFixedDelay和scheduleAtFixedRate的区别
  5. 一个计算机自动作图程序
  6. 前端安全系列之二:如何防止CSRF攻击?
  7. 21次课(安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、 yum搭建本地仓库)...
  8. cisco 以太通道(端口聚合)配置样例
  9. SQLServer------基本操作
  10. liunx下安装tomcat7.0.82