命名元组(collections.namedtuple)

官方文档:https://docs.python.org/zh-cn/3/library/collections.html#collections.namedtuple




命名元组就是可以为元组中每一个位置的值加上属性名的元组,提供可读性和自文档性。

例子:

>>> from collections import namedtuple
>>> Point = namedtuple('Point', ['x', 'y'])

>>> p = Point(1, 2)
>>> p
Point(x=1, y=2)
>>> p.x
1
>>> p.y
2

上例中我们创建的一个表示坐标点的命名元组 p,并通过属性名 xy 来获得其坐标参数。

与此同时,元组传统上通过位置索引获取参数的方法依然可用:

>>> p[0]
1
>>> p[1]
2




除了继承元组的方法,命名元组还支持三个额外的方法和两个属性。为了防止字段名冲突,方法和属性以下划线开始。

  • _make(iterable)
    从存在的序列或迭代实例创建一个新实例
>>> t = [11, 22]
>>> Point._make(t)
Point(x=11, y=22)
  • _asdict()
    返回一个新的 dict,它将字段名称映射到它们对应的值
>>> p = Point(x=11, y=22)
>>> p._asdict()
{'x': 11, 'y': 22}
  • _replace(**kwargs)
    返回一个新的命名元组实例,并将指定域替换为新的值
>>> p = Point(x=11, y=22)
>>> p._replace(x=33)
Point(x=33, y=22)
  • _fields
    返回元组所有字段名
>>> p._fields            # view the field names
('x', 'y')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容