Python – listy – kopiowanie i dodawanie elementu

Niżej przeanalizujemy działanie list na kilku prostych przykładach.

Listy są potężnym narzędziem w rękach programisty, przyjrzyjmy się kilku prostym przykładom.

Listy w Pythonie

Przykład prostej listy, zawierającej liczby od 1 do 5

lista typu liczbowego

lista = [1,2,3,4,5]

lista typu string, dla przykładu z aktualną (na rok 2021/2022) kadrą narodową w piłce nożnej.

pilkarze = ['Łukasz Fabiański','Radosław Majecki','Łukasz  Skorupski','Łukasz Skorupski','Wojciech Szczęsny','Jan Bednarek','Bartosz Bereszyński','Paweł Dawidowicz','Kamil Glik','Robert Gumny','Michał  Helik','Tomasz  Kędziora','Tymoteusz  Puchacz','Arkadiusz Reca','Maciej  Rybus','Przemysław Frankowski','Kamil Jóźwiak','Mateusz  Klich','Kacper Kozłowski','Grzegorz  Krychowiak','Karol  Linetty','Jakub Moder','Przemysław Płacheta','Damian Szymański','Nicola  Zalewski','Piotr Zieliński','Adam Buksa','Robert  Lewandowski','Krzysztof  Piątek','Karol Świderski']

Lista z wykorzystaniem pętli for w Pythonie nazywa się listą składaną. Przyjrzyjmy się więc kilku prostym przykładom przedstawiająca liczby od 1 do 20.

Listy składane

lista = [value for value in range(1,21)]

print(lista)
Kolejny przykład podobnej do wyżej listy, z wartościami od 1 do miliona
lista = [value for value in range(1,1000001)]
print(lista)
Tworzenie listy od 1 do miliona i sprawdzenie czy na pewno na tej liście minimalna wartość to liczba 1 a maksymalna to 1 000 000
lista = [value for value in range(1,1000001)]
print (min(lista))
print (max(lista))
Lista pierwszych dziesięciu sześcianów, czyli **3 tworzona za pomocą pętli for
lista = [value*3 for value in range(1,11)]
print (lista)

Slice, czyli wycinek listy

Mając listę piłkarzy z początku artykułu, możemy odczytać z niej jej wycinek, czyli na przykład piłkarzy od pierwszego do piątego. Jak w funkcji range() posługujemy się tutaj indeksami, czyli ostatni element będzie miał indeks o jeden mnieszy od podanego na koncu naszego wycinka.
print(pilkarze[0:5])
jako ciekawostkę, można uznać zapisprint(pilkarze[:5]),  gdzie brak umieszczonego indeksu 0, Python zastąpi nim domyślnie.
kolejny przykład to wycinek od wybranego elementu do ostatniego
print(pilkarze[15:])
oraz slice (wycinek listy) pięciu ostatnich elementów danej listy
print(pilkarze[-5:])
Wyświetlimy teraz prostą pętlę FOR, dzięki której wyświetlimy naszych piłkarzy, stosując funkcję title(), dzięki której dla pewności zapiszemy pierwsze litery jako wielkie.
print ("Pięciu piłkarzy reprezentacji Polski w piłce nożnej to:")
for pilkarz in pilkarze[:5]:
    print(pilkarz.title())

Jak skopiować listę w Pythonie?

Wcześniej omawialiśmy przykłady, w których zapis [:5] pobierał elementy listy od pierwszego do piątego, oraz [5:] pobierający elementy od 5 do ostatniego.
By więc skopiować listę, należy zaznaczyć cały jej zakres [:]
Korzystając z przykładu listy naszej kadry narodowej, skopiujemy ją do listy kadraNarodowa
kadraNarodowa = pilkarze[:]
print(kadraNarodowa)

Dodawanie do list metodami append(), extend(), insert(x,y)

Dodajmy za pomocą metody append() do naszych list (pilkarze i kadraNarodowa) po jednym nazwisku i sprawdźmy czy każda z tych list jest teraz niezależną listą. Gdybyśmy chcieli dodać jednocześnie więcej elementów, musielibyśmy skorzystać z metody extend(). Natomiast, gdybyśmy chcieli dodać element w środku listy, powinniśmy skorzystać z metody insert(3,5), gdzie 3 to element o danym indeksie, po którym ma zostać dodany nasz. Natomiast 5, stanowi tutaj wartość, kalą chcemy dodać do naszej listy.
pilkarze.append('Artur Boruc')
kadraNarodowa.append('Jerzy Dudek')
print ("\nLista \"pilkarze\" to zupełnie inna lista, zawiera aktualnie:\n")
print(pilkarze)
print ("\n\nNatomiast \"kadraNarodowa\" różni się od poprzedniej listy ostatnim piłkarzem:\n")
print(kadraNarodowa)