namedtuple的简单使用
Posted z-qinfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了namedtuple的简单使用相关的知识,希望对你有一定的参考价值。
""" factory function for creating tuple subclasses with named fields namedtuple 是tuple的子类, 在tuple的基础上增添了许多功能, 最主要是可以把它看成一个类来使用 """ from collections import namedtuple # 使用namedtuple的第一种方式 User = namedtuple("User", [‘name‘, ‘age‘, ‘height‘]) # 这就相当于定义了一个User类,且它有三个属性name,age,height user_tuple = (‘张三‘, ‘12‘, ‘186‘) user = User(*user_tuple) # 使用元组,创建一个User对象 ,且将user_tuple中的元素依次赋值给user, 注意*号 print(user.name) # 张三 直接使用.xx 取值, 很方便啦 # 使用namedtuple的第二种方式 User = namedtuple("User", [‘name‘, ‘age‘, ‘height‘, ‘edu‘]) user_tuple = (‘张三‘, 12, 186) # user = User(*user_tuple,‘doctor‘) # 定义的User是四个属性,但是user_tuple中只有三个值, 但是可以在创建对象时添加其余属性 user = User(*user_tuple, edu=‘doctor‘) # 定义的User是四个属性,但是user_tuple中只有三个值, 但是可以在创建对象时添加其余属性 print(user.edu) # doctor 一样可以取到值 name, age, *other = user # 支持拆包操作 print(name, age, other) # 张三 12 [186, ‘doctor‘] # 使用namedtuple第三种方式 User = namedtuple("User", [‘name‘, ‘age‘, ‘height‘, ‘edu‘]) user_tuple = (‘张三‘, 12, 186, ‘master‘) user = User._make(user_tuple) # 使用_make方法创建对象实例,不过需要注意的是user_tuple中数据个数一定要与User中声明的属性个数相等 print(user) # User(name=‘张三‘, age=12, height=186, edu=‘master‘) # 使用namedtuple的第四种方式 User = namedtuple("User", [‘name‘, ‘age‘, ‘height‘, ‘edu‘]) user_tuple = (‘张三‘, 12, 186, ‘master‘) user = User._make(user_tuple) user_dict = user._asdict() # 转换为一个排序的dict print(user_dict) # OrderedDict([(‘name‘, ‘张三‘), (‘age‘, 12), (‘height‘, 186), (‘edu‘, ‘master‘)]) # 注意: 以上示例使用user_tuple的地方都可以换成一个iterable对象
以上是关于namedtuple的简单使用的主要内容,如果未能解决你的问题,请参考以下文章