栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python collections模块中的namedtuple

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python collections模块中的namedtuple

普通的tuple只能通过下标来访问,可读性较差,而通过namedtuple,我们可以实现给tuple以及tuple内的元素起名,让tuple可读性更强。

namedtuple对象定义的格式:

collections.namedtuple(typename, field_names, verbose=False, rename=False) 

其中:
typename:元组名称
field_names:元组中元素的名称
rename: 如果元素名称中含有 python 的关键字,则必须设置为 rename=True

声明一个namedtuple
import collections

point = collections.namedtuple('point', 'x, y')
point = collections.namedtuple('point', 'x y')
point = collections.namedtuple('point', ['x', 'y'])

collections.namedtuple需要两个参数,第一个数元组的名称,第二个是元组中元素的名称,元素的名称可以用(1)一个字符串,里面用空格分隔字段名;(2)一个字符串,用逗号分隔字段名;(3)由多个字符串组成的可迭代对象。

实例化以及获取元素
p = point(1, 2)

print(p.x)
print(p.y)
print(p[0])
print(p[1])

输出:

1
2
1
2
属性

也可以通过一个list来创建一个User对象,这里注意需要使用"_make"方法

p1 = point._make([1, 2])
print(p1)  
# point(x=1, y=2)
# 获取所有字段名
print(p1._fields)

# ('x', 'y')

修改属性值,使用_replace:

p1 = p1._replace(x=5)
print(p1)

# point(x=5, y=2)

将对象转换成字典:OrderedDict

# 将对象转换成字典
print(p1._asdict())

# OrderedDict([('x', 5), ('y', 2)])
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/581327.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号