python定义具名元组实例操作

  • Post category:Python

下面是关于“Python定义具名元组实例操作”的详细攻略。

定义具名元组

首先,我们需要导入collections模块,然后使用namedtuple函数定义一个具名元组。

import collections

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

以上代码中,namedtuple函数接收两个参数,第一个参数是具名元组的名称,第二个参数是具名元组的属性名列表。在此例中,我们定义了一个名为Point的具名元组,其属性为xy

创建具名元组实例

接着,我们可以用类似普通元组的方式来创建具名元组实例,并将属性值传入。

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

以上代码中,我们使用Point类创建了一个具名元组实例p,并将xy的值分别设置为1和2。然后我们通过p.xp.y访问了元组实例的每个属性。

具名元组实例的操作

在具名元组实例中,我们可以使用普通元组的所有操作,例如索引、切片等。另外,我们还可以使用属性名来访问元组中的值。

print(p[0], p[1])
print(p[:2])

print(p.x, p.y)

以上代码分别演示了使用索引和切片操作访问具名元组实例,以及使用属性名访问具名元组属性。输出结果如下:

1 2
(1, 2)
1 2

因此,无论是创建具名元组实例还是操作具名元组实例都非常简单方便。

示例一:计算坐标距离

下面是一个具体的示例,我们可以使用具名元组表示平面上的一个点,并计算两个点之间的距离。

import collections
import math

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

def distance(p1, p2):
    return math.sqrt((p1.x - p2.x)**2 + (p1.y - p2.y)**2)

p1 = Point(1, 2)
p2 = Point(3, 4)
print(distance(p1, p2))

以上代码中,我们定义了一个名为distance的函数,它接收两个具名元组实例,计算它们之间的距离并返回。然后我们创建了两个具名元组实例p1p2,并将它们作为参数传递给distance函数。输出结果如下:

2.8284271247461903

示例二:使用具名元组表示学生信息

下面是另一个实际的示例,我们可以使用具名元组表示学生信息,然后将多个学生的信息存储在一个列表中。

import collections

Student = collections.namedtuple('Student', ['name', 'age', 'score'])

students = [
    Student('Alice', 21, 90),
    Student('Bob', 22, 85),
    Student('Charlie', 20, 95)
]

for student in students:
    print(student.name, student.age, student.score)

以上代码中,我们定义了一个名为Student的具名元组,它包含了每个学生的姓名、年龄和分数。然后我们创建了三个具名元组实例,并将它们存储在一个列表中。最后,我们使用循环访问每个学生的信息并输出。输出结果如下:

Alice 21 90
Bob 22 85
Charlie 20 95

以上就是关于“Python定义具名元组实例操作”的详细攻略。