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. session,cookie,sessionStorage,localStorage的相关设置以及获取删除

    一.cookie 什么是 Cookie? "cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScrip ...

  2. Mac安装Command Line Tools

    从App Store上下载的Xcode,默认是不会安装Command Line Tools的,Command Line Tools是在Xcode中的一款工具,可以在命令行中运行C程序. 在终端中输入命 ...

  3. 导图梳理springboot手动、自动装配,让springboot不再难懂

    什么是springboot 在学springboot之前,你必须有spring.spring mvc基础,springboot的诞生其实就是用来简化新Spring应用的初始搭建以及开发过程,该框架使用 ...

  4. ubuntu使用uwsgi+nginx部署django

    ls -lha export WORKON_HOME=~/venv source /usr/local/bin/vitualenvwrapper.sh VIRTUALENVWRAPPER_PYTHON ...

  5. VirtualBox for Mac 6.0.14 开源免费虚拟机方案

    VirtualBox for mac是一款开源虚拟机软件,你可以利用该软件在Mac OS平台上运行Windows软件,即可以在一定程度上弥补Mac OS平台软件不足的劣势,玩家也可以获得Windows ...

  6. 服务器端 SOCKET 编程

    使用 Socket 的程序在使用 Socket 之前必须调用 WSAStartup() 函数, 此函数在应用程序中用来初始化 Windows Socket DLL, 只有此函数调用成功后,应用程序才可 ...

  7. Oracle11g入门

    数据类型 数据类型 表示 数字 number 日期时间 date 字符串 char(长度)/varchar2(长度) 约束条件 名称 约束 唯一 unique 非空约束 not null 主键约束 p ...

  8. Cocos2d-x 学习笔记(9) Action 运行原理

    1. 从一个Action开始 1.1 创建 在Scene里写一个Sprite,并添加Action: Sprite *sp = Sprite::create("m1.png"); M ...

  9. LeetCode 1: single-number

    Given an array of integers, every element appears twice except for one. Find that single one. soluti ...

  10. MySQL基础篇(1)SQL基础

    SQL是Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言. 一.SQL分类(DDL,DML,DCL) DDL(Data Definition ...