Noté algo que no esperaba al escribir un guión esta mañana. Traté de usar una lista de comprensión y ordenar todo en una declaración y obtuve un resultado sorprendente. El código siguiente resume mi caso de uso general, pero se ha simplificado para esta pregunta:Ordenando una lista Comprensión en una declaración
Transaction = namedtuple('Transaction', ['code', 'type'])
my_list = [Transaction('code1', 'AAAAA'), Transaction('code2', 'BBBBB'), Transaction('code3', 'AAAAA')]
types = ['AAAAA', 'CCCCC']
result = [trans for trans in my_list if trans.type in types].sort(key = lambda x: x.code)
print result
Salida:
None
Si creo la lista mediante la comprensión, a continuación, ordenar después del hecho, todo está multa. Tengo curiosidad de por qué sucede esto?
los métodos 'sort' ordenan la lista * in-place * y luego devuelven' None'. – sloth