Kolejna misja, to odwracanie stringów (jakkolwiek miałoby to nie brzmieć ;)).
Zakładamy, że mamy wejściowy string "hello world"
i chcemy na wyjściu otrzymać "dlrow olleh"
.
Tu w zasadzie mamy dwa pomysły. Pierwszy to użycie reversed()
- wbudowanej funkcji pythona. Funkcja zwraca 'odwrócony iterator':
In [1]: txt = "hello world" In [2]: ''.join(reversed(txt)) Out[2]: 'dlrow olleh'
Drugi to użycie rozszerzonego mechanizmu slice.
In [1]: txt = "hello world" In [2]: txt[::-1] Out[2]: 'dlrow olleh'
W zasadzie obie opcje są pythoniczne, tyle, że pierwsza jest sporo wolniejsza.
Druga natomiast może być mało czytelna dla mniej doświadczonych programistów pythona, ale chwila zastanowienia daje nam rezultat - początek i koniec wycinka pomijamy, więc bierzemy cały tekst, a krok ustawiamy na -1
, więc bierzemy wyrazy od ostatniego.
Jeśli miałbym wybrać - wybrałbym drugą opcję. Wg mnie jest lepsza.
Pozostają jeszcze funkcje odwracające pisane zupełnie na piechotę. W takiej formie zadania moim zdaniem są zupełnie do odrzucenia.