Listy

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 5782 razy

Listy są odpowiednikami tablic, czy też kontenerów obiektów w C++, jednakże Pythonowe listy mogą przechowywać obiekty dowolnych różnych typów. Oto sposób utworzenia pustej listy:

lista = list()

a oto drugi sposób utworzenia pustej listy:

lista = []

Na dowód, że mówiłem prawdę utwórzmy sobie listę, która przechowuje obiekty różnych typów:

lista = [100, 300.45, "Jakiś tam tekst"] print(lista)

Iterowania po elementach listy:

lista = list(range(0,11)) # tworzę listę o elementach od 0 do 10 z krokiem 1 for i in lista: print(i)

Sprawdzania, czy na liście znajduje się dany element za pomocą operatora in:

lista = [100, 300.45, "Jakiś tam tekst"] if "Jakiś tam tekst" in lista: print("Jest na liście!") else: print("Nie ma naliście!")

Znajdowanie indeksu elementu listy za pomocą jej wewnętrznej metody index:

lista = [100, 300.45, "Jakiś tam tekst"] if "Jakiś tam tekst" in lista: print(lista.index("Jakiś tam tekst")) else: print("Nie ma takiego elementu na liście")

Łączenie dwóch list:

lista1 = list(range(0,11)) lista2 = list(range(0,-5,-1)) lista3 = lista1 + lista2 print(lista3)

Wynik:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, -1, -2, -3, -4]

Inny sposób na to samo, czyli użycie metody extend:

lista1 = list(range(0,11)) lista2 = list(range(0,-5,-1)) lista3 = [] lista3.extend(lista1) lista3.extend(lista2) print(lista3)

Dodawanie elementu na końcu listy:

lista = list(range(0,11)) lista.append(11)

Dodanie elementu do listy w podanym indeksie:

lista = list(range(0,11)) lista.insert(2, 10) print(lista)

Wynik:

[0, 1, 10, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Usuwanie ostatniego elementu listy wraz z jego zwróceniem za pomocą metody pop:

lista = list(range(1,11)) print(lista.pop()) print(lista)

Wynik:

10
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Usuwanie dowolnego elementu listy wraz z jego zwróceniem za pomocą metody pop:

lista = list(range(1,11)) print(lista.pop(2)) print(lista)

Wynik:

3
[1, 2, 4, 5, 6, 7, 8, 9, 10]

Usuwanie dowolnego elementu listy bez zwracania za pomocą słowa kluczowego del:

lista = list(range(1,11)) del lista[2] print(lista)

Wynik:

3
[1, 2, 4, 5, 6, 7, 8, 9, 10]

Usuwanie pierwszego elementu listy, który będzie równy podanej wartości za pomocą metody remove:

lista = [1, 12, 10, 12, 14] while 12 in lista: lista.remove(12) print(lista)

Wynik:

[1, 10, 12, 14]
[1, 10, 14]

Czyszczenie listy za pomocą metody clear:

lista = list(range(1,11)) print(lista) lista.clear() print(lista)

Wynik:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[]

Kopiowanie listy za pomocą metody copy:

lista = list(range(1,11)) lista2 = list.copy() lista2.append(10) lista3 = lista lista3[0] = 50 print(lista) print(lista2) print(lista3)

Wynik działania:

Wynik:

[50, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10]
[50, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Wynik powyższego kodu wyjaśnia dlaczego trzeba kopiować listę.

Odwracanie listy

Pierwszy sposób za pomocą metody reverse:

lista = list(range(1,11)) lista.reverse() print(lista)

Wynik:

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Drugi sposób:

lista = list(range(1,11)) print(lista[::-1])

Sortowanie listy za pomocą metody sort, tutaj w najprostszej możliwej postaci:

lista = list(range(10,0,-1)) lista.sort() print(lista)

Wynik:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Zliczanie liczby elementów równych podanej wartości znajdujących się na liście:

lista = [2, 3, 2, 6, 3, 3, 9, 5] print(lista.count(3))

Wynik:

3

Wyciąganie fragmentu listy

lista = list(range(1,11)) print(lista[1:4]) print(lista[4:1:-1])

Wynik:

[2, 3, 4]
[4, 3, 2]

Liczba elementów listy

Liczbę elementów listy można pozyskać za pomocą len:

lista = list(range(1, 11)) print(len(lista))

Można też wykorzystać wewnętrzną metodę __len__:

lista = list(range(1, 11)) print(lista.__len__())

Najmniejsza wartość na liście

Jeżeli lista zwiera wartości liczbowe, można użyć funkcji min do znalezienia najmniejszej wartości w liście:

lista = list(range(1, 11)) print(min(lista))

Wynik:

1

Największa wartość na liście

Jeżeli lista zwiera wartości liczbowe, można użyć funkcji max do znalezienia największej wartości w liście:

lista = list(range(1, 11)) print(max(lista))

Wynik:

10

Sumowanie elementów listy

Jeżeli lista zwiera wartości liczbowe, można użyć funkcji sum do zsumowania wartości liczbowych znajdujących się w liście:

lista = list(range(1, 11)) print(sum(lista))

Wynik:

55