Python中namedtuple 命名元祖的使用

Python中namedtuple命名元祖的使用

什么是namedtuple?

namedtuple是python的collections模块中的一种数据类型,它是一个可命名的元组,它与元组不同之处在于,namedtuple拥有可命名的字段,而不是基于索引访问。如下所示,我们可以创建一个namedtuple:

from collections import namedtuple

Person = namedtuple('Person', ['name', 'age', 'gender'])
p = Person(name='Bob', age=25, gender='male')
print(p)

这里的Person是一个namedtuple的类型,它的属性有name、age、gender。我们通过name和属性来创建一个p对象。这个p对象将会类型为Person,有三个属性: name, age, gender。此时输出p的结果:Person(name='Bob', age=25, gender='male')

namedtuple与元组的区别

元组和namedtuple都是不可变的序列,它们之间的区别有:

  1. namedtuple支持可读性良好的属性名的访问。

比如我们要访问元组中的第一个元素,我们必须使用t[0]的方式进行索引。而在namedtuple中,我们可以通过p.name的方式来访问namedtuple对象的name属性。

  1. namedtuple是可以拥有方法的。

在元组中我们无法给元组添加方法,而在namedtuple中我们可以为类定义方法来供其各个实例使用。

如何使用namedtuple

namedtuple使用的基本方法十分简单,我们只需要引入这个模块,定义一个namedtuple类型,然后我们就可以创建namedtuple的实例。

下面我们提供两个创建namedtuple实例的例子。

例子一

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p1 = Point(1, 2)
p2 = Point(3, 4)
print(p1)
print(p2)
print(p1.x)

这里我们定义了一个类型为Point的namedtuple。我们通过Point(1, 2)Point(3, 4)分别创建了两个Point类型的实例p1和p2,分别表示二维平面上的两个点(x=1,y=2)和(x=3,y=4)。在这个例子中,我们访问p1的横坐标和纵坐标分别是通过p1.xp1.y访问的。

这里的输出结果为:

Point(x=1, y=2)
Point(x=3, y=4)
1

例子二

from collections import namedtuple

Animal = namedtuple('Animal', ['name', 'age', 'species'])

lucy = Animal(name='Lucy', age=4, species='cat')
lily = Animal(name='Lily', age=2, species='dog')
john = Animal(name='John', age=1, species='panda')

print("Lucy's age:", lucy.age)
print("Lily's species:", lily.species)
print(john)

这里我们定义了一个名为Animal的namedtuple,它有三个属性:name、age和species。我们创建了三个实例对象:lucylilyjohn,分别表示“猫”,“狗”和“熊猫”。在例子中,我们通过lucy.agelily.species访问了两个对象的属性,输出结果如下:

Lucy's age: 4
Lily's species: dog
Animal(name='John', age=1, species='panda')

以上就是对namedtuple的基本介绍和两个简单的使用例子。namedtuple以其简洁而又易读的语法,以及对实例属性的自动命名而成为了Python编程语言的一等公民。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中namedtuple 命名元祖的使用 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python下调用Linux的Shell命令的方法

    当我们在Python中需要执行一些系统级的任务,比如创建、删除、移动、查找文件或文件夹,或者直接调用Linux下的Shell命令实现一些特殊的功能时,我们可以使用Python的subprocess模块来实现。下面就是Python下调用Linux的Shell命令的方法的完整攻略: 确定要执行的Shell命令 首先,我们要明确要调用的Shell命令。可以通过在L…

    python 2023年6月2日
    00
  • python paramiko利用sftp上传目录到远程的实例

    让我来讲解“python paramiko利用sftp上传目录到远程的实例”的完整攻略。 首先,需要了解一下paramiko的基本使用,并且需要保证本地机器上安装了paramiko库。 连接远程主机 首先需要使用SSH协议连接到远程主机。示例代码如下: import paramiko #创建SSHClient实例对象并建立ssh连接 ssh = parami…

    python 2023年6月5日
    00
  • Python3如何实现列表模糊匹配列表

    在Python3中,我们可以使用列表推导式和in关键字来实现列表模糊匹配列表。下面是详细的攻略: 使用列表推导式和in关键,对每个列表里的元素进行模糊匹配操作生成一个新的列表。 下面是一个示例,演示如何使用列表模糊匹配列表的方法,找出一个列表里所有包特定字符串元素: my_list = [‘apple’, ‘banana’, ‘orange’, ‘grape…

    python 2023年5月13日
    00
  • Python实战之markdown转pdf(包含公式转换)

    Python实战之markdown转pdf(包含公式转换)的完整攻略可以分为以下几个步骤: 1. 安装必要的库 使用Python Markdown生成PDF需要安装以下库:- markdown- pdfkit 使用数学公式需要安装以下软件:- LaTeX- XeTeX 安装方式请参考官网或自行搜索。 2. 编写Markdown文档 在本地或者在线markdo…

    python 2023年6月3日
    00
  • pandas快速处理Excel,替换Nan,转字典的操作

    下面我将介绍一下“pandas快速处理Excel,替换Nan,转字典的操作”的完整攻略。 步骤一:安装pandas库 在使用pandas之前,我们需要先安装pandas库。如果你还没有安装,可以在命令行中输入以下命令进行安装: pip install pandas 步骤二:导入pandas库 在开始使用pandas之前,我们需要先导入pandas库: imp…

    python 2023年5月13日
    00
  • PyCharm 安装与使用配置教程(windows,mac通用)

    PyCharm 安装与使用配置教程 简介 PyCharm 是 Python 开发中最受欢迎的集成开发环境(IDE)之一。它是 JetBrains 开发的高度自定义的 Python 全能性 IDE,旨在提高开发者的生产力和代码质量。 本教程将向您展示如何在 Windows 和 macOS 操作系统上安装和配置 PyCharm。 步骤 1:下载 PyCharm …

    python 2023年5月30日
    00
  • python 字符串只保留汉字的方法

    如果您想Python字符串只保留汉字,可按照以下步骤进行操作: 导入re模块 在Python中,re是用于正则表达式操作的标准库之一,它在字符串中搜索和替换文字非常方便。 import re 使用正则表达式过滤字符串中的非汉字字符 正则表达式中的 [\u4e00-\u9fa5] 表示匹配汉字范围内的字符,其他非汉字字符使用正则表达式 [^\u4e00-\u9…

    python 2023年6月5日
    00
  • 详解Python语法之模块Module

    详解Python语法之模块Module 模块(Module) 是一个包含 Python 定义和语句的文件, 后缀名为 .py。模块能够定义函数, 声明变量, 可以包含运行起来的代码。 当我们需要在多个地方使用同一个功能时,我们可以将其定义为一个模块。Python 自带很多常用模块,如 os、sys、datetime、math 等。 模块的引入和使用 在 Py…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部