MC, 09:02 czwartek, 16.04.2015 r.
Ilustracja do artykułu: Python - Operacje na ciągach znaków: indeksowanie i odwracanie stringa

Python - Operacje na ciągach znaków: indeksowanie i odwracanie stringa

Krótkie omówienie działania indeksowania łańcuchów znaków w Python'ie i przy okazji notatka pokazująca najprostszy sposób na odwrócenie stringa.

Co rozumiemy przez indeksowanie stringów?

Przez indeksowanie stringów rozumiemy tu dostęp do wskazanych numerycznie elementów łańcucha znaków, czyli jego podzbiorów jedno jaki i wieloelementowych. Python ma dość rozbudowaną możliwość dostępu do części stringa po indeksach znaków, ale zacznijmy od najprostszej z nich.

string[indeks]

Jest to najprostsza z możliwości zwracająca wskazany znak w łańcuchu. Warto jednak dodać, że indeks może przyjąć również wartości ujemne, co oznacza znak liczony od końca łańcucha.
In [1]: print lancuchZnakow
abcdefghijklmno

In [2]: lancuchZnakow[2]
Out[2]: 'c'

In [3]: lancuchZnakow[-2]
Out[3]: 'n'

In [4]: lancuchZnakow[5]
Out[4]: 'f'

In [5]: lancuchZnakow[-10]
Out[5]: 'f'

string[indeks_początkowy:indeks_końcowy]

Możemy również wskazać zakres indeksów, które w rezultacie dadzą nam podzbiór całości. Ujemne wartości indeksów są dozwolone i podobnie jak w pierwszym przypadku, oznaczają położenie liczone od końca stringa. Z kolei nie podanie w ogóle któregoś z indeksów powoduje przyjęcie przez niego najmniejszej bądź największej jego wartości, zależnie od tego, którego z indeksów to dotyczy.
In [2]: print lancuchZnakow
abcdefghijklmno

In [3]: lancuchZnakow[3:8]
Out[3]: 'defgh'

In [4]: lancuchZnakow[8:3]
Out[4]: ''

In [5]: lancuchZnakow[3:-3]
Out[5]: 'defghijkl'

In [6]: lancuchZnakow[-3:]
Out[6]: 'mno'

In [7]: lancuchZnakow[:-3]
Out[7]: 'abcdefghijkl'

string[indeks_początkowy:indeks_końcowy:krok]

Istnieje jeszcze trzeci wariant odwoływania się do części stringów po indeksach. Jest podobny do poprzedniego tylko wzbogacony o parametr kroku, który mówi o tym, co który element ze wskazanego zakresu wybrać. Spójrzmy na nieco przykładów:
In [2]: print lancuchZnakow
abcdefghijklmno

In [3]: lancuchZnakow[::1]
Out[3]: 'abcdefghijklmno'

In [4]: lancuchZnakow[::2]
Out[4]: 'acegikmo'

In [5]: lancuchZnakow[::3]
Out[5]: 'adgjm'

In [6]: lancuchZnakow[3:-3:2]
Out[6]: 'dfhjl'

In [7]: lancuchZnakow[3:-3:-2]
Out[7]: ''

In [8]: lancuchZnakow[-3:3:-1]
Out[8]: 'mlkjihgfe'

In [9]: lancuchZnakow[::-1]
Out[9]: 'onmlkjihgfedcba'

In [10]: lancuchZnakow[::-2]
Out[10]: 'omkigeca'

In [11]: lancuchZnakow[::-3]
Out[11]: 'olifc'

Najbardziej interesujące są ostatnie przykłady, zaczynając od tego oznaczonego numerem 7, gdzie zaczynamy używać ujemnych parametrów kroku. Proszę również zwrócić uwagę, że 9. przykład obrazuje sposób na bardzo proste odwrócenie kolejności znaków w stringu, co zapowiadałem we wstępie do artykułu.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: