Wpis z mikrobloga

@kurazjajami: print(sorted([czlek.imie for czlek in ludzie])) gdzie ludzie jakiś iterable z obiektami.
Można też zamiast list comprehension użyć map(lambda czlek: czlek.imie, ludzie), na tym sorted. Ale tu też musisz mieć jakiś iterable.
  • Odpowiedz
@kurazjajami: To już zależy od tego co konkretnie chcesz zrobić. Jak chcesz posortować wg. jednego z parametrów to sorted ma parametr key. Wrzucasz tam funkcję, która określa klucz wg. którego chcesz sortować. sorted(ludzie, key: lambda czlek: czlek.imie) zwróci listę posortowanych obiektów wg. imienia. Generalnie polecam dokumentację, warto potrafić się po niej poruszać.
  • Odpowiedz
@boktosiewpehapiepolapie: W funkcjach operujacych na iterablach wydajniej jest uzyc generator expression zamiast list comprehension. Wtedy po pierwsze - mozna ominac te ohydne nawiasy kwadratowe, po drugie - nie tworzymy explicite listy w pamieci, tylko pozwalamy funkcji sorted na optymalizacje tego. :-)

print(sorted(human.name for human in humans))
  • Odpowiedz
@3denos: O, człowiek uczy się całe życie. Dzięki wielkie, mam trochę fioła na punkcie optymalizacji, na pewno będę korzystał. Muszę kiedyś całego PEPa przeczytać, od dawna się do tego zabieram. ( ͡° ͜ʖ ͡°)
  • Odpowiedz