ordereddict how example dict create python namedtuple

python - how - Obtener nombre de valor de namedtuple



python ordereddict to dict (2)

Si está intentando obtener los nombres reales, use el atributo _fields :

In [50]: point = collections.namedtuple(''point'', ''x, y'') In [51]: p = point(x=1, y=2) In [52]: for name in p._fields: ....: print name, getattr(p, name) ....: x 1 y 2

Tengo un módulo con colección:

import collections named_tuple_sex = collections.namedtuple( ''FlightsResultsSorter'', [''TotalPriceASC'', ''TransfersASC'', ''FlightTimeASC'', ''DepartureTimeASC'', ''DepartureTimeDESC'', ''ArrivalTimeASC'', ''ArrivalTimeDESC'', ''Airlines''] ) FlightsResultsSorter = named_tuple_sex( FlightsResultsSorter(''TotalPrice'', SortOrder.ASC), FlightsResultsSorter(''Transfers'', SortOrder.ASC), FlightsResultsSorter(''FlightTime'', SortOrder.ASC), FlightsResultsSorter(''DepartureTime'', SortOrder.ASC), FlightsResultsSorter(''DepartureTime'', SortOrder.DESC), FlightsResultsSorter(''ArrivalTime'', SortOrder.ASC), FlightsResultsSorter(''ArrivalTime'', SortOrder.DESC), FlightsResultsSorter(''Airlines'', SortOrder.ASC) )

y en otro módulo itero por esta colección y quiero obtener el nombre del elemento:

for x in FlightsResultsSorter: self.sort(x)

así que en el código que quiero, en lugar de eso, x (que es un objeto) pasa por ejemplo "DepartureTimeASC" o "ArrivalTimeASC".

¿Cómo puedo obtener este nombre?

Atentamente


from itertools import izip for x, field in izip(FlightsResultsSorter, named_tuple_sex._fields): print x, field

También puedes usar FlightsResultsSorter._asdict() para obtener un dict.