Crear una lista de namedtuples
A menudo puede ser muy útil para usar namedtuple.Por ejemplo, usted tiene un diccionario de 'nombre' como claves y 'puntuación' como valores como:
d = {'John':5, 'Alex':10, 'Richard': 7}
Se pueden listar los artículos como tuplas, ordenados si se quiere, y obtener el nombre y la puntuación de, vamos a decir que el jugador con la puntuación más alta (índice = 0) muy Pythonically así:
>>> player = best[0]
>>> player.name
'Alex'
>>> player.score
10
Cómo hacer esto:
lista en orden aleatorio o mantener el orden de collections.OrderedDict:
import collections
Player = collections.namedtuple('Player', 'name score')
players = list(Player(*item) for item in d.items())
en orden, ordenados por valor ('puntuación'):
import collections
Player = collections.namedtuple('Player', 'score name')
ordenados con baja puntuación primera:
worst = sorted(Player(v,k) for (k,v) in d.items())
clasificado con mayor puntuación en primer lugar:
best = sorted([Player(v,k) for (k,v) in d.items()], reverse=True)
'[tupla (invertida (x)) para x en d.Items()]' – garej