我是靠谱客的博主 清新保温杯,最近开发中收集的这篇文章主要介绍collections模块之namedtuple,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

namedtuple描述

Python中存储系列数据,比较常见的数据类型有list,除此之外,还有tuple数据类型。相比与list,tuple中的元素不可修改,在映射中可以当键使用。tuple元组的item只能通过index访问,collections模块的namedtuple子类不仅可以使用item的index访问item,还可以通过item的name进行访问。

  • 其首先将各个item命名,然后对每个item赋予数据。
from collections import namedtuple  # 使用时先导包


# 初始化需要两个参数,第一个是 name,第二个参数是所有 item 名字的列表。
coordinate = namedtuple('Coordinate', ['x', 'y'])

# 如果你无法理解这样的穿件方式,就先把这句话当成创建了一个继承自namedtuple类的子类,
# 第一个参数是且必须是类名,第二个参数是该类的实例属性的列表
User = namedtuple('User', ['name', 'age', 'home']) #类名User 参数有[name,age,home]


u = User('it', 33, 'beijing')#创建实例对象,并传入对应参数的值

print(u.name) # 通过实例对象名.属性名的方式进行访问
print(u.age)
print(u)
u = u._replace(age=100) # _replace()方法可以更改属性值
print(u.age)
it     # 输出结果
33
User(name='it', age=33, home='beijing')
100
  • namedtuple 还提供了 _make 从 iterable 对象中创建新的实例:
coordinate._make([10,20]) # 这种方法创建和上述的方法二选一使用
  • namedtuple还提供了_replace方法可以为一个对象的item重新赋值
coordinate._replace(x=30)  # 重要
  • namedtuple还提供了_asdict方法可以将命名元组转换为对应键值字典
print(u._asdict())

# OrderedDict([('name', 'it'), ('age', 100), ('home', 'beijing')])
# 因为元组是有序的,所以直接转成了OrderedDict
d = u._asdict()

print(d)
for i in d:
    print(i, d.get(i))  # 以后从字典取值的时候用get(),别再用[]了
#  结果
#  OrderedDict([('name', 'it'), ('age', 100), ('home', 'beijing')])
#  name  it
#  age   100
#  home  beijing

最后

以上就是清新保温杯为你收集整理的collections模块之namedtuple的全部内容,希望文章能够帮你解决collections模块之namedtuple所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部