Sto lavorando con un elenco di namedtuples. Vorrei aggiungere un campo a ciascuna tupla con nome dopo che è stata già creata. Sembra che posso farlo semplicemente facendo riferimento come attributo (come in namedtuple.attribute = 'foo'
), ma poi non viene aggiunto all'elenco dei campi. C'è qualche ragione per cui non dovrei farlo in questo modo se non faccio nulla con la lista dei campi? C'è un modo migliore per aggiungere un campo?come aggiungere campi a un namedtuple?
>>> from collections import namedtuple
>>> result = namedtuple('Result',['x','y'])
>>> result.x = 5
>>> result.y = 6
>>> (result.x, result.y)
(5, 6)
>>> result.description = 'point'
>>> (result.x, result.y, result.description)
(5, 6, 'point')
>>> result._fields
('x', 'y')
E perché non usi semplicemente dict? dict.keys di sicuro avrà aggiunto "campi". – omikron