PYTHON

PYTHON Listy | Wycinanie

Kolejną rzeczą, którą możemy zrobić z listą to wycięcie jej fragmentu. Przejdźmy od razu do przykładu:

print(mojalista)
['papuga', 9, 'mysz', 'kot', 1, 2.4, 'papuga', 10]

nowalista = mojalista[0:3]

print(mojalista)
['papuga', 9, 'mysz', 'kot', 1, 2.4, 'papuga', 10]

print(nowalista)
['papuga', 9, 'mysz']

Z istniejącej już listy o nazwie mojalista wycięliśmy fragment i zapisaliśmy jako nowalista.

Wycięcia, a w zasadzie skopiowania fragmentu listy dokonaliśmy za pomocą instrukcji:

mojalista[0:3]

W nawiasach kwadratowych mamy dwie liczby oddzielone dwukropkiem. Jest to zakres indeksów od, do obejmujący elementy do wycięcia. Należy jednak pamiętać, że przedział ten jest prawostronnie otwarty. A bardziej po ludzku, że wycinamy elementy o indeksach 0, 1, 2. Nie bierzemy pod uwagę elementu o indeksie 3.

Na tych samych listach wykonajmy inny podział:

print(mojalista)
['papuga', 9, 'mysz', 'kot', 1, 2.4, 'papuga', 10]

nowalista = mojalista[2:5]

print(nowalista)
['mysz', 'kot', 1]

Podaliśmy zakres indeksów <2,5), zatem chcemy z listy mojalista skopiować do nowej listy elementy o indeksach 2, 3 oraz 4. Są to zatem: ‘mysz’, ‘kot’ oraz 1.

 

Pamiętamy, że numeracja elementów listy od początku rozpoczyna się od 0. Natomiast mamy jeszcze numerację obejmującą liczby ujemne i tak ostatni element listy ma indeks -1, przedostatni -2 i tak dalej.

Wykorzystajmy to zatem przy wycinaniu:

print(mojalista)
['papuga', 9, 'mysz', 'kot', 1, 2.4, 'papuga', 10]

nowalista = mojalista[3:-2]

print(nowalista)
['kot', 1, 2.4]

Tym razem nasz zakres wynosi od elementu o indeksie 3: ‘kot’, do ostatniego elementu przed indeksem -2.

Element o indeksie -2 to ‘papuga’. Ostatni element przed nim to 2.4.

Zatem wycinamy elementy od ‘kot’ do 2.4.

 

Wycinanie ze skokiem

Do tej pory wycinaliśmy zbiór kolejnych elementów listy. Możemy natomiast wyciąć np. co drugi element z danego zbioru listy.

Przejdźmy do przykładu:

print(mojalista)
['papuga', 9, 'mysz', 'kot', 1, 2.4, 'papuga', 10]

nowalista = mojalista[1:6:2]

print(nowalista)
[9, 'kot', 2.4]

Tym razem wycięcia dokonaliśmy podając 3 parametry: od, do i skok. Dwa pierwsze mamy już dokładnie omówione. Skok natomiast nam mówi co który element spośród zbioru nas interesuje.

I tak mamy zbiór elementów <1,6) :  9, ‘mysz’, ‘kot’, 1, 2.4

Chcemy natomiast z tego wyciągnąć jedynie co drugi element: 9, ‘kot’, 2.4

I to jest nasz zbiór wyjściowy.

 

Kolejny przykład już do Twojej samodzielnej analizy:

print(lista1)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

lista2 = lista1[2:-6:3]

print(lista2)
[3, 6, 9, 12]

 

Wartości domyślne

Do wycinania elementów listy wykorzystywaliśmy 3 parametry: od, do, skok.

Jeśli nie podamy, któregoś z nich, będzie miał on swoją wartość domyśną:

  • od – domyślnie pierwszy element listy
  • do – domyślnie ostatni element listy
  • skok – domyślnie 1

Dla przykładu – podajmy tylko wartość skoku:

print(lista1)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

lista2 = lista1[::2]

print(lista2)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]