Próbuję posortować listę alfabetycznie, gdzie wielkie litery powinny pojawić się przed małymi literami.python: jak sortować listy alfabetycznie w odniesieniu do wielkich liter
l = ['a', 'b', 'B', 'A']
sorted(l)
powinno skutkować ['A','a','B','b']
Próbowałem te dwie formy, ale bezskutecznie;
>>> sorted(l, key=lambda s: s.lower())
['a', 'A', 'b', 'B']
>>> sorted(l, key=str.lower)
['a', 'A', 'b', 'B']
idealnym rozwiązaniem. Przepraszam za mój poprzedni komentarz braintead :) –
Jeśli masz napisy w języku innym niż angielski, bądź ostrożny z metodami, które polegają na użyciu '.lower()' do sortowania bez rozróżniania wielkości liter, działają tylko dla zestawu znaków ASCII. Odpowiedni sposób polega na odrobinie manipulowania przy ustawieniach regionalnych. – wim
Na przykład to rozwiązanie nie działa dla 'lst = ['á', 'b', 'B', 'Á']' na pythonie 2 (prawdopodobnie będzie na python3) – wim