Listy w Python, część 1

Są takie umiejętności, które każdy programujący w dowolnym języku programowania musi umieć posiadać. Nie inaczej jest w Pythonie. W serii „wtorki z Pythonem” będę poruszał także bardziej podstawowe zagadnienia związane z programowaniem, które nie tylko dla osób początkujących mogą stanowić przydatne kompendium wiedzy. W tym tygodniu zajmę się typem danych, jakim są listy.

Listy

W języku Python lista to zmienna składająca się z elementów dowolnego typu. Dla uproszczenia możemy o niej myśleć jak o jednowymiarowej tablicy. Zmienne tego typu spotkamy w Perlu, PHP czy C. W Pythonie elementami listy mogą być dowolne typy danych, także inne listy.

pusta_lista = []
lista_a = [ 1, 2, 'trzy', 'cztery']
lista_b = [ 11, 12, lista_a ]

Aby zmiennej nadać typ listy posługujemy się nawiasami kwadratowymi. Tworzenie pustej listy jest przydatne, gdy chcemy jednoznacznie zadeklarować typ zmiennej, zanim wpiszemy do niej dane. Jest to wykorzystywane na przykład w konstruktorach klas. Do kolejnych elementów naszej zmiennej odwołujemy się za pomocą indeksów, których numerację zaczynamy od 0. Poniżej kilka prostych odwołań:

>>> lista_a[0]
1
>>> lista_a[2]
'trzy'
>>> lista_b[0]
11
>>> lista_b[2]
[1, 2, 'trzy', 'cztery']
>>> lista_b[2][3]
'cztery'

Indeksy ujemne i wycinanie

Python jest językiem bardzo elastycznym. Możemy w nim wykonać kilka ciekawych operacji na listach. Do elementów listy możemy odwoływać się za pomocą indeksów ujemnych, czyli numerować listę od końca. Ostatni z elementów ma w takim przypadku indeks -1, przedostatni -2, i tak dalej.

>>> lista_a[-1]
'cztery'
>>> lista_a[-4]
1

Inną przydatną operacją jest odwoływanie się jedynie do wycinka listy (ang. slice). Fragment ten musi tworzyć pojedynczy ciągły blok. Zakres elementów definiujemy znakiem :. Jeżeli wycinek ma obejmować pierwszy lub ostatni element, to możemy pominąć jego numer z prawej lub lewej strony dwukropka. Jest to szczególnie przydatne, gdy nie wiemy, z ilu elementów składa się nasza zmienna, ale wiemy, od którego elementu chcemy wydzielić podzbiór.

Należy zwracać uwagę na to, w jaki sposób wycinek definiujemy. Zapis [:2] oznacza pobranie dwóch pierwszych elementów listy, czyli tych o indeksach 0 i 1. Natomiast zapis [2:] oznacza zakres od drugiego elementu do końca. Pamiętajmy zatem, że definiując wycinek wartość pod indeksem, który podaliśmy jako górną granicę, nie będzie zawierać się w wycinku.

>>> lista_a[:2]
[1, 2]
>>> lista_a[2:]
['trzy', 'cztery']
>>> lista_a[1:3]
[2, 'trzy']

Pamiętajmy także, że odwołanie do elementu, który nie istnieje, zwróci nam błąd. Za pomocą systemowej funkcji len() w prosty sposób sprawdzimy, z ilu elementów składa się lista.

>>> len(lista_a)
4
>>> lista_a[4]
Traceback (most recent call last):
  File "", line 1, in 
IndexError: list index out of range

Subscribe
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

0 komentarzy
Inline Feedbacks
View all comments

ZdradziĆ Ci sekretY udanego projektu automatyzacji?

(link otwiera się w nowym oknie)