命名元组嵌套
时间: 2023-07-25 22:23:28 浏览: 95
命名元组可以嵌套,即在一个命名元组中包含另一个命名元组。
例如,我们可以定义一个表示三维坐标的命名元组:
```python
from collections import namedtuple
Coordinate = namedtuple('Coordinate', ['x', 'y', 'z'])
```
然后,我们可以定义一个包含多个 Coordinate 对象的命名元组:
```python
from collections import namedtuple
Coordinate = namedtuple('Coordinate', ['x', 'y', 'z'])
Position = namedtuple('Position', ['name', 'coordinate'])
p1 = Position('Point A', Coordinate(1, 2, 3))
p2 = Position('Point B', Coordinate(4, 5, 6))
print(p1)
print(p2)
```
输出:
```
Position(name='Point A', coordinate=Coordinate(x=1, y=2, z=3))
Position(name='Point B', coordinate=Coordinate(x=4, y=5, z=6))
```
可以看到,Position 命名元组包含一个 name 属性和一个 coordinate 属性,coordinate 属性又是一个 Coordinate 命名元组,表示一个三维坐标。我们可以通过嵌套命名元组来实现更加复杂的数据结构。
阅读全文