python namedtuple用法_Python namedtuple
mqslllduoduo
Python元组的升级版本 -- namedtuple(具名元组)
因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。具名元组的实例和普通元组消耗的内存一样多,因为字段名都被存在对应的类里面。这个类跟普通的对象实例比起来也要小一些,因为 Python 不会用 __dict__ 来存放这些实例的属性。
namedtuple 对象的定义如以下格式:
collections.namedtuple(typename, field_names, verbose=False, rename=False)
返回一个具名元组子类 typename,其中参数的意义如下:
typename:元组名称
field_names: 元组中元素的名称
rename: 如果元素名称中含有 python 的关键字,则必须设置为 rename=True
verbose: 默认就好
下面来看看声明一个具名元组及其实例化的方法:
import collections
# 两种方法来给 namedtuple 定义方法名
#User = collections.namedtuple('User', ['name', 'age', 'id'])
User = collections.namedtuple('User', 'name age id')
user = User('tester', '22', '464643123')
print(user)
collections.namedtuple('User', 'name age id') 创建一个具名元组,需要两个参数,一个是类名,另一个是类的各个字段名。后者可以是有多个字符串组成的可迭代对象,或者是有空格分隔开的字段名组成的字符串(比如本示例)。具名元组可以通过字段名或者位置来获取一个字段的信息。
输出结果:
User(name='tester', age='22', id='464643123')
具名元组的特有属性:
类属性 _fields:包含这个类所有字段名的元组
类方法 _make(iterable):接受一个可迭代对象来生产这个类的实例
实例方法 _asdict():把具名元组以 collections.OrdereDict 的形式返回,可以利用它来把元组里的信息友好的展示出来
from collections import namedtuple
# 定义一个namedtuple类型User,并包含name,sex和age属性。
User = namedtuple('User', ['name', 'sex', 'age'])
# 创建一个User对象
user = User(name='Runoob', sex='male', age=12)
# 获取所有字段名
print( user._fields )
# 也可以通过一个list来创建一个User对象,这里注意需要使用"_make"方法
user = User._make(['Runoob', 'male', 12])
print( user )
# User(name='user1', sex='male', age=12)
# 获取用户的属性
print( user.name )
print( user.sex )
print( user.age )
# 修改对象属性,注意要使用"_replace"方法
user = user._replace(age=22)
print( user )
# User(name='user1', sex='male', age=21)
# 将User对象转换成字典,注意要使用"_asdict"
print( user._asdict() )
# OrderedDict([('name', 'Runoob'), ('sex', 'male'), ('age', 22)])
以上实例输出结果为:
('name', 'sex', 'age')
User(name='Runoob', sex='male', age=12)
Runoob
male
12
User(name='Runoob', sex='male', age=22)
OrderedDict([('name', 'Runoob'), ('sex', 'male'), ('age', 22)])
python namedtuple用法_Python namedtuple相关推荐
- python namedtuple用法_Python namedtuple(命名元组)使用实例
namedtuple对象就如它的名字说定义的那样,你可以给tuple命名,具体看下面的例子:import collections Person=collections.namedtuple('Pers ...
- python基本用法_Python基本用法总结
Python 的设计具有很强的可读性,易于使用.这里对python基本用法做一个总结介绍. 一. 变量类型 1. 变量赋值 Python中的变量赋值不需要类型声明,每个变量在使用前都必须赋值,变量赋值 ...
- python end用法_python中end的使用方法
python中end的使用方法 发布时间:2020-06-17 09:47:13 来源:亿速云 阅读:178 这篇文章给大家分享的是有关python中end的使用方法,小编觉得挺实用的,因此分享给大家 ...
- python try用法_python中的try的用法
展开全部 try语句32313133353236313431303231363533e78988e69d8331333431366238是python里面的控制语句,与except,finally配合 ...
- python namedtuple用法_Python的collections模块中namedtuple结构使用示例
namedtuple 就是命名的 tuple,比较像 C 语言中 struct.一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按照 inde ...
- python 包用法_Python 基础教程之包和类的用法
Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...
- python yield用法_Python中迭代器和生成器的区别?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- python elif 用法_Python入门高级教程--Python 条件语句
Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和 ...
- python elseif用法_python学习笔记(一)
0.前言 本文是根据廖雪峰python教程学习总结而来. 参考<python学习手册>,<流畅的python>以及python官方手册等网络资料 略过了与C和C++ 语言相同的 ...
最新文章
- ISME:中大李文均组在放线菌生命暗物质的生态功能与进化上取得进展
- 中间表增加额外字段_知识分享 I 这样显示报表筛选字段 你学会了吗
- percona mysql5.7进程出现大量unauthenticated user解决记录
- Spring请求级备忘录
- 手把手教你用EVO工具评估SLAM数据集TUM、KITTI、EuRoC(附代码)
- python面试题总结(3)-- 数据类型(字符串)
- 斯坦福大学深度学习公开课cs231n学习笔记(4)正向传播及反向传播
- win8.1 uefi引导
- 邮件定时发送微博热搜
- android Textview属性细节以及EditText属性
- VOC2007/2012数据集解析
- 网络安全(加密技术、数字签名、证书)
- 第三章 MapReduce框架原理
- 计算机二进制祖宗是西方人?中国道教一张八卦图千年前早已解释!
- 外贸公司比较常用邮箱有哪几个?邮箱的区别是什么?
- IP地址的分类及子网掩码的计算
- dellR730装机教程
- response是什么意思中文_response是什么意思
- 休谟与人机、因果、实践
- 绩效评估如何帮助提高员工绩效?