python当中的结构体
一.使用collections模块中的namedtuple类型
1.namedtuple表示结构体
python当中可以采用namedtuple,即命名元组来表示结构体。(namedtuple实际上是一个可以用来创建具有命名字段的轻量级对象的工厂函数)
下面举一个简单的例子:
from collections import namedtuple
# 创建一个表示点的结构体
Point = namedtuple('Point', ['x', 'y'])
# 创建一个Point对象p
p = Point(1, 2)
# 访问对象的属性
print(p.x) # 输出: 1
print(p.y) # 输出: 2
在上面的例子中,我们使用namedtuple函数创建了一个名为Point的结构体,它有两个属性x和y,分别表示点的横坐标和纵坐标。然后我们创建了一个Point对象p,并访问了它的属性。
使用namedtuple可以让代码更加清晰和易读,因为它可以像普通对象一样访问属性,同时又具有元组的不变性和轻量级的性能。
2.结构体排序:
法一:利用operator模块中的attrgetter函数
(1)首先导入namedtuple和operator模块
from collections import namedtuple
import operator
(2)创建结构体,定义属性
Person = namedtuple('Person', ['name', 'age', 'height'])#创建一个名为Person的命名元组,属性为name age height等等
(3)创建包含多个结构体对象的列表
people = [
Person('Alice', 25, 165),
Person('Bob', 30, 175),
Person('Charlie'<