python——namedtuple
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的更多相关文章
- Python namedtuple(命名元组)使用实例
Python namedtuple(命名元组)使用实例 #!/usr/bin/python3 import collections MyTupleClass = collections.namedtu ...
- Python namedtuple
我们都知道Python中的tuple是一个非常高效的集合对象,但是我们只能通过索引的方式访问这个集合中的元素,比如下面的代码: Bob=('bob',30,'male') print'Represen ...
- python namedtuple命名元组
from collections import namedtuple Animal=namedtuple('Animal','name age type') perry=Animal(name='pe ...
- python -- namedtuple元组
- Python 学习 第十四篇:命名元组
Python的元组不能为元组内部的数据进行命名,而 collections.namedtuple 可以来构造一个含有字段名称的元组类,命名元组可以通过逗号+字段名来获取元素值: collections ...
- python常用模块collections os random sys
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...
- python 知识点补充
python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...
- Python元类实践--自己定义一个和collections中一样的namedtuple
大家可能很熟悉在collections模块中有一个很好用的扩展数据类型-namedtuple. 如果你还不知道这个类型,那么请翻看标准手册. 我利用元类轻松定义一个namedtuple. 先把代码贴上 ...
- python中namedtuple介绍
namedtuple:namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护.namedtuple能够用来创建类似于元祖的数 ...
随机推荐
- 解决Maven依赖jar包冲突总结
maven导入jar包中的一些概念: 直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包. 传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中 ...
- Windows SDK version 8.1 下载地址
Windows SDK version 8.1 下载地址 https://go.microsoft.com/fwlink/p/?LinkId=323507
- Web安全之url跳转漏洞及bypass总结
0x01 成因 对于URL跳转的实现一般会有几种实现方式: META标签内跳转 javascript跳转 header头跳转 通过以GET或者POST的方式接收将要跳转的URL,然后通过上面的几种方式 ...
- [Luogu2737] [USACO4.1]麦香牛块Beef McNuggets
题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...
- [JZOJ5778]【NOIP提高A组模拟2018.8.8】没有硝烟的战争
Description 被污染的灰灰草原上有羊和狼.有N只动物围成一圈,每只动物是羊或狼.该游戏从其中的一只动物开始,报出[1,K]区间的整数,若上一只动物报出的数是x,下一只动物可以报[x+1,x+ ...
- Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?
当前时间:2019年10月24日.距离 JDK 14 发布时间(2020年3月17日)还有多少天? // 距离JDK 14 发布还有多少天? LocalDate jdk14 = LocalDate.o ...
- Halcon一日一练:图像分割之阈值分割1
先了解什么是阈值,度娘告诉我的是:一个领域或一个系统的界限称为阈,其数值称为阈值.在图像中,我们把图像看成一个由像素灰度值组成的数集,那么阈,就是这个图像中,根据目标与背景灰度值的差异,选取的一个合适 ...
- Python 爬取豆瓣TOP250实战
学习爬虫之路,必经的一个小项目就是爬取豆瓣的TOP250了,首先我们进入TOP250的界面看看. 可以看到每部电影都有比较全面的简介.其中包括电影名.导演.评分等. 接下来,我们就爬取这些数据,并将这 ...
- python中的__call__函数
简单实例: class TmpTest: def __init__(self, x, y): self.x = x self.y = y def __call__(self, x, y): self. ...
- 玩转OneNET物联网平台之MQTT服务③ —— 远程控制LED(设备自注册)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...