recorrer - Bucle sobre elementos de la tupla con nombre en Python
recorrer diccionario python (1)
Tengo una tupla nombrada a la que asigno valores como este:
class test(object):
self.CFTs = collections.namedtuple(''CFTs'', ''c4annual c4perren c3perren ntfixing'')
self.CFTs.c4annual = numpy.zeros(shape=(self.yshape, self.xshape))
self.CFTs.c4perren = numpy.zeros(shape=(self.yshape, self.xshape))
self.CFTs.c3perren = numpy.zeros(shape=(self.yshape, self.xshape))
self.CFTs.ntfixing = numpy.zeros(shape=(self.yshape, self.xshape))
¿Hay alguna manera de recorrer los elementos de la tupla nombrada? Intenté hacer esto, pero no funciona:
for fld in self.CFTs._fields:
self.CFTs.fld= numpy.zeros(shape=(self.yshape, self.xshape))
namedtuple es una tupla, por lo que puede iterar como una tupla normal:
>>> from collections import namedtuple
>>> A = namedtuple(''A'', [''a'', ''b''])
>>> for i in A(1,2):
print i
1
2
pero las tuplas son inmutables, por lo que no puedes cambiar el valor
Si necesita el nombre del campo puede usar:
>>> a = A(1, 2)
>>> for name, value in a._asdict().iteritems():
print name
print value
a
1
b
2
>>> for fld in a._fields:
print fld
print getattr(a, fld)
a
1
b
2