Python how to edit data in a namedtuple stored in a list?

*爱你&永不变心* 提交于 2019-12-08 08:59:43

问题


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?

QUESTION

how to edit the value of PicData?


回答1:


It looks to me like you can use the _replace method of a namedtuple to do this pretty easily:

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

This puts a new namedtuple in your PageNumList which looks pretty much like the old namedtuple except that we've changed the PicData "attribute". You can't edit the namedtuple that you have already since namedtuples are immutable (just like their unnamed counterparts: tuples)



来源:https://stackoverflow.com/questions/14731157/python-how-to-edit-data-in-a-namedtuple-stored-in-a-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!