Python中namedtuple命名元祖怎么使用

发布时间:2023-04-15 11:10:49 作者:iii
来源:亿速云 阅读:148

这篇“Python中namedtuple命名元祖怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中namedtuple命名元祖怎么使用”文章吧。

from collections import namedtuple()命名元祖的工厂函数:

在python中,collections 包中的 namedtuple() 函数可以创建命名元组,并提供可读性和自文档性。它可以用于普通元组并使用名称或索引获取值。例子如下:

from collections import namedtuple

"""
collections 包中的 namedtuple() 函数可以创建命名元组,
并提供可读性和自文档性。
它可以用于普通元组并使用名称或索引获取值。
"""
# 创建一个命名元祖子类User,其中的索引为name和age
User=namedtuple('User',['name','age'])
u=User('kerun',22)

print(u) # User(name='kerun', age=22)
print(type(u)) # <class '__main__.User'>

语法

collections.namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)

命名元组实例没有字典,所以它们要更轻量,并且占用更小内存。

除了继承元祖的昂发外,命名元祖还支持三个额外的方法和两个属性,wield防止域名冲突,方法和属性以下划线开始

classmethod somenamedtuple._make(iterable) 类方法从存在的序列或迭代实例创建一个新实例。

t=User._make(['kerun',18])
print(t)# User(name='kerun', age=18)

somenamedtuple._asdict() 返回一个新的 OrderedDict ,它将字段名称映射到它们对应的值

a=t._asdict()
print(t)# User(name='kerun', age=18)
print(a)# {'name': 'kerun', 'age': 18}

somenamedtuple._replace(**kwargs) 返回一个新的命名元组实例,并将指定域替换为新的值

b=t._replace(name='jj')
print(t)# User(name='kerun', age=18)
print(b)# User(name='jj', age=18)

somenamedtuple._fields 字符串元组列出了域名。用于提醒和从现有元组创建一个新的命名元组类型。

print(t._fields)# ('name', 'age')

somenamedtuple._field_defaults 默认值的字典。

>>> User = namedtuple('User', ['name', 'age'], defaults=['wxnacy', 18])
>>> u = User()
>>> u._fields_defaults
{'name': 'wxnacy', 'age': 18}

完整代码

from collections import namedtuple


"""
collections 包中的 namedtuple() 函数可以创建命名元组,
并提供可读性和自文档性。
它可以用于普通元组并使用名称或索引获取值。
"""
# 创建一个命名元祖子类User,其中的索引为name和age
User=namedtuple('User',['name','age'])
u=User('kerun',22)

print(u) # User(name='kerun', age=22)
print(type(u)) # <class '__main__.User'>

t=User._make(['kerun',18])
print(t)# User(name='kerun', age=18)

a=t._asdict()
print(t)# User(name='kerun', age=18)
print(a)# {'name': 'kerun', 'age': 18}

b=t._replace(name='jj')
print(t)# User(name='kerun', age=18)
print(b)# User(name='jj', age=18)

print(t._fields)# ('name', 'age')

以上就是关于“Python中namedtuple命名元祖怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. 用python如何实现学生成绩管理系统?
  2. python能否替代java成为主流语言?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python namedtuple

上一篇:Typescript怎么使用装饰器实现接口字段映射与Mock

下一篇:springboot怎么配置双kafka

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》