下面是关于“Python定义具名元组实例操作”的详细攻略。
定义具名元组
首先,我们需要导入collections
模块,然后使用namedtuple
函数定义一个具名元组。
import collections
Point = collections.namedtuple('Point', ['x', 'y'])
以上代码中,namedtuple
函数接收两个参数,第一个参数是具名元组的名称,第二个参数是具名元组的属性名列表。在此例中,我们定义了一个名为Point
的具名元组,其属性为x
和y
。
创建具名元组实例
接着,我们可以用类似普通元组的方式来创建具名元组实例,并将属性值传入。
p = Point(1, 2)
print(p.x, p.y)
以上代码中,我们使用Point
类创建了一个具名元组实例p
,并将x
和y
的值分别设置为1和2。然后我们通过p.x
和p.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
的函数,它接收两个具名元组实例,计算它们之间的距离并返回。然后我们创建了两个具名元组实例p1
和p2
,并将它们作为参数传递给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定义具名元组实例操作”的详细攻略。