如何编辑存储在列表中的命名元组数据?
问题
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
一样)。