Python 使用元组和命名元组

  • Post category:Python

Python中的元组

在Python中,元组(tuple)是一种有序、不可变的数据类型。它类似于列表,但是元组中的元素不能被修改。元组是使用小括号 () 定义的,其中的元素用逗号 , 分隔开。下面是一个元组的简单示例:

t = (1, 2, 3)
print(t)  # 输出:(1, 2, 3)

元组中的元素可以通过索引访问,索引从0开始:

t = (1, 2, 3)
print(t[0])  # 输出:1

元组的一些常见操作

元组也支持一些常见的操作,如拼接、重复、切片等操作。下面是一些示例:

t = (1, 2, 3)
t2 = (4, 5, 6)

# 拼接
t3 = t + t2
print(t3)  # 输出:(1, 2, 3, 4, 5, 6)

# 重复
t4 = t * 2
print(t4)  # 输出:(1, 2, 3, 1, 2, 3)

# 切片
t5 = t[0:2]
print(t5)  # 输出:(1, 2)

Python中的命名元组

Python中的命名元组是一种特殊的元组,它可以给元组中的每个元素赋予一个名称,从而方便地访问它们。命名元组是使用 namedtuple() 函数创建的。下面是一个简单的示例:

from collections import namedtuple

Person = namedtuple('Person', ['name', 'age', 'gender'])
p = Person('Tom', 20, 'Male')
print(p)  # 输出:Person(name='Tom', age=20, gender='Male')
print(p.name)  # 输出:Tom
print(p.age)  # 输出:20
print(p.gender)  # 输出:Male

上面的代码创建了一个名为Person 的命名元组,它有三个字段:nameagegender。然后创建了一个名为 p 的实例,并给它赋予了值。可以通过名称访问元组中的字段,如 p.name

示例说明

示例一:元组的使用

下面的代码演示了如何使用元组来交换两个变量的值:

a = 1
b = 2
a, b = b, a
print(a, b)  # 输出:2 1

上面的代码创建了两个变量 ab,并将它们的值分别赋为1和2。然后在最后一行使用了元组来一次性交换了两个变量的值。

示例二:命名元组的使用

下面的代码演示了如何使用命名元组来更清晰地表示一个点的坐标:

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])

p = Point(1, 2)
print(p.x)  # 输出:1
print(p.y)  # 输出:2

上面的代码使用命名元组表示一个点的坐标,其中有两个字段:xy。然后创建了一个名为 p 的实例,表示点的坐标为 (1, 2)。可以通过名称访问元组中的字段,如 p.x