namedtuple()概念理解分享

我们都知道元组tuple的概念,tuple是一个定义之后就不能够更改的可迭代对象,namedtuple作为tuple的兄弟具有同样的属性,一旦定义就不可以更改。但是namedtuple相对于tuple具有更灵活的使用方法。所以namedtuple功能更强大。

首先举个例子看看这个函数怎么使用的

from collections import namedtuple   # 导入模块
Student = namedtuple('duanming','age','class')
# 括号内的duanming是等下要输出在括号外的
# Student是一个类,等下定义的时候要使用
a = Student(23,'5班')
print(a)
#output: duanming(age = 23,class = 5班) #上面定义括号中的duanming跑到括号外了,当了标识符
# 我们在把a的参数‘age'和'class'传给Student的时候不能少传或者多传,不然会报错

按照上面给的例子,可以创建一个自己属性的namedtuple来当作练习

我们知道在tuple中如果要访问哪个值只能通过索引或者遍历来访问,在namedtuple中不仅仅可以通过遍历和索引来访问,还能够通过域来访问,例如下面:

from collections import namedtuple   # 导入模块
Student = namedtuple('duanming','age','class')
# 括号内的duanming是等下要输出在括号外的
# Student是一个类,等下定义的时候要使用
a = Student(23,'5班')
print(a)
#output: duanming(age = 23,class = 5班)
#为了得到年龄,我们可以这样进行操作:
age = duanming.age
print(age)
#output:23

这里可以总结一下,namedtuple实际上也是生成了一个元组,上面这个元组的名字是duanming,它有两个域,一个是’age’,另一个是’class’,我们定义的方式不是像tuple那样直接给出来了,我们是先构造出这个通用元组的名称和域名,然后再对其域进行赋值,所以这个通用元组可以一直被重复使用,定义大量格式相同而内容不同的元组,所以namedtuple相对于tuple来说,如果掌握好了,功能更加强大。

python——namedtuple的更多相关文章

  1. Python namedtuple(命名元组)使用实例

    Python namedtuple(命名元组)使用实例 #!/usr/bin/python3 import collections MyTupleClass = collections.namedtu ...

  2. Python namedtuple

    我们都知道Python中的tuple是一个非常高效的集合对象,但是我们只能通过索引的方式访问这个集合中的元素,比如下面的代码: Bob=('bob',30,'male') print'Represen ...

  3. python namedtuple命名元组

    from collections import namedtuple Animal=namedtuple('Animal','name age type') perry=Animal(name='pe ...

  4. python -- namedtuple元组

  5. Python 学习 第十四篇:命名元组

    Python的元组不能为元组内部的数据进行命名,而 collections.namedtuple 可以来构造一个含有字段名称的元组类,命名元组可以通过逗号+字段名来获取元素值: collections ...

  6. python常用模块collections os random sys

    Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...

  7. python 知识点补充

    python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...

  8. Python元类实践--自己定义一个和collections中一样的namedtuple

    大家可能很熟悉在collections模块中有一个很好用的扩展数据类型-namedtuple. 如果你还不知道这个类型,那么请翻看标准手册. 我利用元类轻松定义一个namedtuple. 先把代码贴上 ...

  9. python中namedtuple介绍

    namedtuple:namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护.namedtuple能够用来创建类似于元祖的数 ...

随机推荐

  1. Linux学习资料网站汇总链接(持续更新ing)

    排名不分先后. 学海无涯苦作舟. 博客: 1.slmba:LINUX博客原创大牛 2.edsionte's TechBlog:Linuxer (他的友情链接中还有一堆Linuxer,被公司屏蔽进不去. ...

  2. 张高兴的 .NET Core IoT 入门指南:(五)串口通信入门

    在开始之前,首先要说明的是串口通信所用到的 SerialPort 类并不包含在 System.Device.Gpio NuGet 包中,而是在 System.IO.Ports NuGet 包中.之所以 ...

  3. WPF写圆形头像,带消息提醒图标

    <DockPanel VerticalAlignment="Top" HorizontalAlignment="Stretch" Margin=" ...

  4. Windows SDK version 8.1 下载地址

    Windows SDK version 8.1 下载地址 https://go.microsoft.com/fwlink/p/?LinkId=323507

  5. Bran的内核开发教程(bkerndev)-02 准备工作

    准备工作   内核开发是编写代码以及调试各种系统组件的漫长过程.一开始这似乎是一个让人畏惧的任务,但是并不需要大量的工具集来编写自己的内核.这个内核开发教程主要涉及使用GRUB将内核加载到内存中.GR ...

  6. 浑身尖刺的服务可用性守护者——hystrix熔断器实践记录

    netflix公司的产品hystrix(长满刺的豪猪),在高可用目标下具有一定熔断.限流.降级的作用.这里主要写一些自己在使用时的问题解决思路,原理请自行理解,包括线程池与信号量模式等. 注意三个参数 ...

  7. Spring整合Mybatis(IDEA版)

    本文适用于初学者: 该文主要教大家如何整合spring和mybatis,整合完成效果,可以从数据库中查询出学生信息: 完整的工程目录如下: 整合思路: 需要spring来管理数据源信息. 需要spri ...

  8. 使用python进行运动轨迹合并:多次骑行跑步轨迹叠加显示

    现有各种各样的运动app.运动手表手环以及gps码表等可以用于记录日常骑行或跑步等运动轨迹;但轨迹显示多数只限于显示一天的轨迹,经过搜索只发现一篇文章介绍跑步轨迹叠加方法(查看),根据教程尝试了下还因 ...

  9. 7.Linux文件编辑之Vim

    1.VIM基本概述 1.什么是VIM? vi和vim是Linux下的一个文本编辑工具.(可以理解为windows的记事本,或word文档) 2.为什么要使用VIM? 因为Linux系统一切皆为文件,而 ...

  10. DM7的闪回功能及动态新能视图相关SQL总结

    DM7的闪回功能默认是关闭的,需要在dm.ini中设置参数: ENABLE_FLASHBACK = 1 UNDO_RETENTION = 900 意思为可以进行900s以内的闪回查询.下面是使用该功能 ...