如何编辑存储在列表中的命名元组数据?

2 投票
1 回答
6363 浏览
提问于 2025-04-17 14:58

问题

import struct
from collections import namedtuple

StructPageNum = namedtuple('FDResult', ['DeviceID', 'PageNum','PicSize','PicData'])
PageNumList = []

Node = StructPageNum(DeviceID='NR09', PageNum=[],PicSize=100,PicData='')
PageNumList.append(Node)

PageNumList[0].PicData = 'hello' //how to do at here?

怎么修改PicData的值?

1 个回答

9

看起来你可以使用_replace这个方法来很简单地做到这一点:

PageNumList[0] = PageNumList[0]._replace(PicData='hello')

这样做会在你的PageNumList中放入一个新的命名元组,这个新的命名元组和旧的几乎一模一样,只不过我们把PicData这个“属性”给改了。你不能直接修改已经存在的命名元组,因为namedtuple是不可变的(就像它们的无名版本:tuples一样)。

撰写回答