Python如何编辑存储在列表中的namedtuple中的数据?

1 python arrays struct namedtuple

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?
Run Code Online (Sandbox Code Playgroud)

如何修改PicData的值?

mgi*_*son 6

在我看来,你可以使用_replacenamedtuple 的方法很容易地做到这一点:

PageNumList[0] = PageNumList[0]._replace(PicData='hello')
Run Code Online (Sandbox Code Playgroud)

会给你一个新的命名元素,PageNumList它看起来很像旧的命名元组,除了我们已经改变了PicData"属性".您不能编辑,你已经因为namedtuple namedtuples为不可变的(就像他们的无名同行:tuples)