Zauważyłem coś, czego nie spodziewałem się, pisząc dziś rano scenariusz. Próbowałem użyć rozumowania z list i posortowałem je w jednym komunikacie i uzyskałem zaskakujący wynik. Poniższy kod podsumowuje mój ogólny przypadek użycia, ale jest uproszczone na to pytanie:Sortowanie listy w jednym komunikacie
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
wyjściowa:
None
Jeśli utworzyć listę za pomocą słuchu, następnie posortować je po fakcie, wszystko jest w porządku. Jestem ciekawy, dlaczego tak się dzieje?
Metoda 'sort' sortuje listę * w miejscu *, a następnie zwraca' Brak'. – sloth