python具名元组(namedtuple)的具体使用

当我们需要定义一个简单的类来存储数据时,Python 的 namedtuple 是一种很好的选择。namedtuple 可以看作是一个不可变的类,可以按名称来访问元组的各个元素,从而避免了索引数字所带来的混淆和错误。

使用 namedtuples 的主要优点是代码的可读性和设计的整洁性。因为它们是不可变的,所以它们适用于作为全局常量的对象或数据记录的值。

下面是具体的使用攻略:

1. 创建 namedtuple

首先,我们需要导入 namedtuple:

from collections import namedtuple

接下来,我们可以用 namedtuple 创建一个新的对象,实例化它并将其分配给变量。namedtuples 需要两个参数:一个是名称,另一个是一个元组,元组中包含各个元素的名称。例如,我们可以从我的网站中创建一个 namedtuples:

Color = namedtuple('Color', ['red', 'green', 'blue'])
c = Color(25, 50, 75)

上述代码就创建了一个名为 "Color" 的 named tuple,包含三个域 red、green 和 blue,并将变量 c 实例化为 Color 类型的对象。

2. 访问 namedtuple

访问 namedtuple 有两种方法:

(1) 通过索引访问

可以通过索引来访问 namedtuple。例如,我们可以使用以下方式来访问命名元组 c 的第一个元素 red:

print(c[0]) #输出 25

(2) 通过名称访问

我们可以使用名称来直接访问 namedtuple 的元素。例如,我们可以使用以下方式来访问命名元组 c 的第一个元素 red:

print(c.red) #输出 25

注意:由于 namedtuples 是不可变的,因此我们不能使用代码 c.red = 35 处理 namedtuples。

3. 实例化

实例化是指创建一个新的 namedtuple 类型的对象。有三种方法可以实例化 namedtuples。

(1) 通过 iterable 实例化

我们可以使用 iterable 来实例化 namedtuples,这种方式需要注意的是 iterable 中元素的数量必须和 namedtuples 中定义的元素数量一致。例如:

c1 = Color(*[255,255,0])

(2) 通过关键字实例化

我们可以使用关键字来实例化 namedtuples,在这种情况下,不需要按位置定义值,只需要用字典中的键值对声明它们就可以了。例如:

c2 = Color(red=255, green=0, blue=0)

(3) 通过 _make() 方法实例化

我们可以使用 _make() 方法来实例化 namedtuples,它接收一个可迭代对象作为参数。例如:

data = [225, 200, 125]
c3 = Color._make(data)

示例

from collections import namedtuple

# 定义namedtuple Color,包括三个域 red、green 和 blue
Color = namedtuple('Color', ['red', 'green', 'blue'])

# 实例化namedtuple,通过 iterable 实例化
c1 = Color(*[255,255,0])
print(c1) #输出: Color(red=255, green=255, blue=0)

# 实例化namedtuple,通过关键字实例化
c2 = Color(red=255, green=0, blue=0)
print(c2) #输出: Color(red=255, green=0, blue=0)

# 实例化namedtuple,通过 _make() 方法实例化
data = [225, 200, 125]
c3 = Color._make(data)
print(c3) #输出: Color(red=225, green=200, blue=125)

以上代码演示了使用 namedtuple 的三种实例化方法。在 c1 中,我们使用了 iterable 来实例化 namedtuples。在 c2 中,我们使用关键字来实例化 namedtuples。在 c3 中,我们使用 _make() 方法来实例化 namedtuples。

另一种示例,请看下面的代码段:

from collections import namedtuple

# 定义namedtuple User,包括三个域 name、age 和 gender
User = namedtuple('User', ['name', 'age', 'gender'])

# 实例化namedtuple
users = [
    User(name='Tom', age=18, gender='M'),
    User(name='Jerry', age=20, gender='M'),
    User(name='Lucy', age=22, gender='F')
]

# 根据性别统计数量
gender_counter = dict()
for u in users:
    if u.gender not in gender_counter:
        gender_counter[u.gender] = 1
    else:
        gender_counter[u.gender] += 1

print(gender_counter) #输出:{'M': 2, 'F': 1}

以上代码演示了如何使用 namedtuple 来创建一个用户记录的列表,并按性别统计用户数量。使用 namedtuple 能够更直观地定义数据结构,而且代码的可读性更高。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python具名元组(namedtuple)的具体使用 - Python技术站

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

相关文章

  • Python+request+unittest实现接口测试框架集成实例

    在本文中,我们将介绍如何使用Python、requests和unittest库实现接口测试框架集成。我们将使用requests库发送HTTP请求,并使用unittest库编写测试用例,以实现接口测试的功能。 1. 使用requests库发送HTTP请求 首先,我们需要使用requests库发送HTTP请求。以下是一个示例,演示如何使用requests库发送H…

    python 2023年5月15日
    00
  • pytest多线程与多设备并发appium

    下面是关于“pytest多线程与多设备并发appium”的完整攻略。 1. 准备工作 在开始之前,我们需要准备以下工作: 安装appium:npm install -g appium 安装pytest、pytest-xdist、pytest-html等依赖包: python pip install pytest pytest-xdist pytest-htm…

    python 2023年5月19日
    00
  • Python中的集合介绍

    Python中的集合介绍 在Python中,集合是一种无序的、可变的数据类型,用于存储不重复的元素。集合是一种非常常用的数据类型,可以用于去重、交、并集操作。本文将详细介绍Python中的集合,包括集合的创建、集合的操作、集合的方法等。 集合的创建 要创建一个集合,我们可以使用set()函数或使用花括号{}。例如: # 创建集合 my_set = set([…

    python 2023年5月13日
    00
  • Python pandas.replace的用法详解

    在Python中,pandas是一个强大的数据分析库,提供了许多数据处理和转换的函数。其中,pandas.replace()函数用于替换DataFrame或Series中的值。本文将详细介绍pandas.replace()函数的用法,包括函数参数、返回值、示例说明等。 函数参数 pandas.replace()函数的语法如下: DataFrame.repla…

    python 2023年5月14日
    00
  • python读取xlsx的方法

    下面是关于“Python读取xlsx的方法”的完整攻略。 准备工作 在使用Python读取xlsx文件之前,需要安装相应的库——openpyxl。可以通过以下命令来安装: pip install openpyxl 安装完成后,就可以开始使用openpyxl库对xlsx文件进行读取和处理了。 读取Excel文件 在使用openpyxl库读取Excel文件时,需…

    python 2023年6月3日
    00
  • python判断字符串或者集合是否为空的实例

    在Python中,可以使用if语句和len()函数来判断字符串或集合是否为空。下面将介绍两个示例,分别演示了如何使用if语句和len()函数来判断字符串或集合是否为空。 示例一:使用if语句判断字符串是否为空 # 使用if语句判断字符串是否为空 str1 = "" if str1: print("字符串不为空") el…

    python 2023年5月13日
    00
  • Python学习之函数的定义与使用详解

    Python学习之函数的定义与使用详解 函数的作用 函数可以将一些代码段封装起来,用函数名代替代码段来实现相同的功能。这样,在编写代码时,我们只需要调用函数即可实现功能,而不需要重复编写相同的代码。在代码量庞大时,这无疑是一种较好的方式。 函数的定义 函数的定义格式如下: def 函数名(参数列表): 函数体 其中,定义函数名字的关键字是def。函数名字可以…

    python 2023年5月14日
    00
  • Python实现求两个数组交集的方法示例

    下面我将为你详细讲解“Python实现求两个数组交集的方法示例”的完整攻略。 准备工作 在开始实现求两个数组交集的过程之前,我们需要先准备一些工作。具体来说,我们需要: 安装Python:在开始任何Python项目之前,我们需要首先安装Python。你可以在Python官网上下载并安装适合你的版本,推荐使用最新版Python 3.x。 准备相关Python库…

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