Listy

Stronę tą wyświetlono już: 293 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:

Listing 1
  1. lista = list()

a oto drugi sposób utworzenia pustej listy:

Listing 2
  1. lista = []

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

Listing 3
  1. lista = [100, 300.45, "Jakiś tam tekst"]
  2. print(lista)

Iterowania po elementach listy:

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

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

Listing 5
  1. lista = [100, 300.45, "Jakiś tam tekst"]
  2. if "Jakiś tam tekst" in lista:
  3. print("Jest na liście!")
  4. else:
  5. print("Nie ma naliście!")

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

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

Łączenie dwóch list:

Listing 7
  1. lista1 = list(range(0,11))
  2. lista2 = list(range(0,-5,-1))
  3. lista3 = lista1 + lista2
  4. 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:

Listing 8
  1. lista1 = list(range(0,11))
  2. lista2 = list(range(0,-5,-1))
  3. lista3 = []
  4. lista3.extend(lista1)
  5. lista3.extend(lista2)
  6. print(lista3)

Dodawanie elementu na końcu listy:

Listing 9
  1. lista = list(range(0,11))
  2. lista.append(11)

Dodanie elementu do listy w podanym indeksie:

Listing 10
  1. lista = list(range(0,11))
  2. lista.insert(2, 10)
  3. 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:

Listing 11
  1. lista = list(range(1,11))
  2. print(lista.pop())
  3. 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:

Listing 12
  1. lista = list(range(1,11))
  2. print(lista.pop(2))
  3. 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:

Listing 13
  1. lista = list(range(1,11))
  2. del lista[2]
  3. 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:

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

Wynik:

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

Czyszczenie listy za pomocą metody clear:

Listing 15
  1. lista = list(range(1,11))
  2. print(lista)
  3. lista.clear()
  4. print(lista)

Wynik:

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

Kopiowanie listy za pomocą metody copy:

Listing 16
  1. lista = list(range(1,11))
  2. lista2 = list.copy()
  3. lista2.append(10)
  4. lista3 = lista
  5. lista3[0] = 50
  6. print(lista)
  7. print(lista2)
  8. 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:

Listing 17
  1. lista = list(range(1,11))
  2. lista.reverse()
  3. print(lista)

Wynik:

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

Drugi sposób:

Listing 18
  1. lista = list(range(1,11))
  2. print(lista[::-1])

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

Listing 19
  1. lista = list(range(10,0,-1))
  2. lista.sort()
  3. 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:

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

Wynik:

3

Wyciąganie fragmentu listy

Listing 21
  1. lista = list(range(1,11))
  2. print(lista[1:4])
  3. 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:

Listing 22
  1. lista = list(range(1, 11))
  2. print(len(lista))

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

Listing 23
  1. lista = list(range(1, 11))
  2. 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:

Listing 24
  1. lista = list(range(1, 11))
  2. 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:

Listing 25
  1. lista = list(range(1, 11))
  2. 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:

Listing 26
  1. lista = list(range(1, 11))
  2. print(sum(lista))

Wynik:

55

Komentarze