11 метода за листу Питхон-а које морате знати

U ovom uputstvu istražićemo različite načine korišćenja Python metoda za manipulaciju listama. Naučićete kako dodavati, menjati i brisati elemente iz Python lista.

Kada počinjete da programirate u Python-u, liste su među prvim ugrađenim strukturama podataka koje ćete savladati. U narednim redovima, proći ćemo kroz osnove Python lista, a zatim ćemo se fokusirati na korisne metode koje možete upotrebiti prilikom rada sa listama.

Počnimo!

Pregled Python lista

U Python-u, lista predstavlja kolekciju stavki koje mogu biti istog ili različitog tipa podataka. Možete prolaziti kroz ovu kolekciju i pristupati elementima koristeći petlje, kao što su `for` petlje.

Kao i svi Python iterabili, liste se indeksiraju počevši od nule i podržavaju operaciju sečenja (slice).

Liste su promenljive kolekcije, što znači da se mogu modifikovati na licu mesta. Ovo uključuje dodavanje i uklanjanje elemenata, sortiranje elemenata određenim redosledom, obrtanje redosleda elemenata i još mnogo toga. Python-ove ugrađene metode lista vam pomažu u ovim radnjama.

Pogledajmo neke korisne Python metode za rad sa listama.

Metode ugrađene u Python listama

U ovom delu, naučićemo o nekoliko korisnih metoda za rad sa listama. Pružićemo primere koda kako bismo videli ove metode na delu.

Koristićemo listu `pgm_langs`, koja sadrži stringove sa imenima popularnih programskih jezika.

pgm_langs = ['Python','Go','Rust','JavaScript']

Umetanje elemenata u listu pomoću `insert()`

Ponekad je potrebno umetnuti element na određenu poziciju u listi. Za ovo se koristi metoda `insert()`. Poziv ove metode uključuje:

  • Indeks na koji se element treba umetnuti, i
  • Element koji se umeće.

Umetnimo string ‘Scala’ na indeks 1 pomoću metode `insert()`.

pgm_langs = ['Python','Go','Rust','JavaScript']
pgm_langs.insert(1,'Scala')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript']

Dodavanje elementa na kraj liste pomoću `append()`

Često je potrebno dodati element na kraj liste. To se postiže metodom `append()`.

Dodajmo string ‘Java’ na kraj liste koristeći metodu `append()`.

pgm_langs.append('Java')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java']

Dodavanje iterabilnih objekata pomoću `extend()`

Već znate da možete koristiti `append()` za dodavanje jednog elementa. Ali šta ako želite da dodate više elemenata, recimo, listu elemenata, na postojeću listu? Metoda `extend()` nudi jednostavan način za to.

Dodajmo elemente iz liste `more_langs` u listu `pgm_langs` koristeći metodu `extend()`.

more_langs = ['C++','C#','C']
pgm_langs.extend(more_langs)
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java', 'C++', 'C#', 'C']

Možete proći kroz listu elemenata i koristiti metodu `append()` da dodate element po element. Međutim, ovo može biti nepotrebno dugačko. Zgodnije je koristiti metodu `extend()`.

for lang in more_langs:
    pgm_langs.append(lang)

Obrtanje redosleda elemenata u listi pomoću `reverse()`

Da biste obrnuli redosled elemenata u listi, možete pozvati metodu `reverse()`.

Pogledajmo kako se lista `pgm_langs` menja.

pgm_langs.reverse()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Java', 'JavaScript', 'Rust', 'Go', 'Scala', 'Python']

Sortiranje liste pomoću `sort()`

Možete sortirati Python listu na licu mesta koristeći metodu `sort()`. Pošto je `pgm_langs` lista stringova, sortiranje se vrši po abecednom redu.

pgm_langs.sort()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Go', 'Java', 'JavaScript', 'Python', 'Rust', 'Scala']

Da biste sortirali listu u obrnutom abecednom redu, možete podesiti parametar `reverse` na `True` u pozivu metode `sort()`.

pgm_langs.sort(reverse=True)
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Saznajte više o sortiranju Python lista.

Kreiranje plitke kopije pomoću `copy()`

Ponekad je korisno modifikovati kopiju originalne liste umesto da menjate samu originalnu listu. Metoda `copy()` vraća plitku kopiju Python liste.

Napravimo plitku kopiju liste `pgm_langs` i nazovimo je `pgm_langs_copy`. Postavimo prvi element u listi na ‘Haskell’ i odštampajmo listu.

pgm_langs_copy = pgm_langs.copy()
pgm_langs_copy[0]='Haskell'
print(pgm_langs_copy)
# Output: ['Haskell', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Vidimo da lista `pgm_langs` nije modifikovana. Dakle, pravljenje plitke kopije i njena modifikacija ne menja originalnu listu.

print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Dobijanje broja pojavljivanja elementa pomoću `count()`

Ponekad je korisno znati koliko puta se određeni element pojavljuje u listi. Metoda `count()` vraća broj pojavljivanja elementa u listi.

U listi `pgm_langs`, svi elementi se pojavljuju tačno jednom. Dakle, kada pokušamo da dobijemo broj pojavljivanja stringa ‘Go’, dobijamo 1, što je tačno.

print(pgm_langs.count('Go'))
# Output: 1

Korišćenje metode `count()` je jedan od načina za uklanjanje duplikata iz Python lista.

Dobijanje indeksa elementa pomoću `index()`

Da biste pronašli indeks elementa u Python listi, možete koristiti metodu `index()`. Pretpostavimo da želimo da pronađemo indeks stringa ‘C#’ u listi `pgm_langs`. Možemo koristiti `assert` naredbu da proverimo da li je element na indeksu 7 zaista ‘C#’.

print(pgm_langs.index('C#'))
# Output: 7
assert pgm_langs[7] == 'C#'

Uklanjanje elementa po indeksu pomoću `pop()`

Sada ćemo se usredsrediti na metode lista za uklanjanje elemenata iz Python lista. Metoda `pop()` se koristi za uklanjanje i vraćanje elementa na određenom indeksu. Iz prethodnog primera koda, znamo da je ‘C#’ na indeksu 7.

Kada pozovemo metodu `pop()` na listi `pgm_langs` sa 7 kao indeksom, vidimo da vraća ‘C#’, element sa indeksom 7, i takođe ga uklanja iz liste.

print(pgm_langs.pop(7))
# Output: 'C#'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C']

Dakle, metoda `pop()` uklanja i vraća element sa navedenog indeksa. Međutim, navođenje indeksa je opciono. Kada ne navedete indeks, metoda `pop()` uklanja i vraća poslednji element u Python listi, kao što je prikazano:

print(pgm_langs.pop())
# Output: 'C'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++']

Uklanjanje elemenata pomoću `remove()`

Ponekad možda znate koji element želite da uklonite, ali ne i njegov indeks. U tom slučaju, možete koristiti metodu `remove()`, koja kao argument prima element za uklanjanje i uklanja ga. Uklonimo ‘Java’ iz liste `pgm_langs` pomoću metode `remove()`.

pgm_langs.remove('Java')
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Go', 'C++']

Uklanjanje svih elemenata pomoću `clear()`

Šta ako želite da uklonite sve elemente iz Python liste? Možete proći kroz listu i ukloniti svaki element koristeći metodu `remove()`, ovako:

for lang in pgm_langs:
    pgm_langs.remove(lang)

Ali, postoji li bolji način? Da, koristeći metodu `clear()`. Vidimo da poziv metode `clear()` na listi `pgm_langs` uklanja sve elemente, i `pgm_langs` je sada prazna lista.

pgm_langs.clear()
print(pgm_langs)
# Output: []

Rezime Python metoda za rad sa listama

Brzo da rezimiramo različite metode lista i njihovu sintaksu:

Metoda Sintaksa Opis
insert() list1.insert(index, elt) Umeće elt na dati indeks u listu1
append() list1.append(elt) Dodaje elt na kraj liste1
extend() list1.extend(list2) Dodaje elemente iz liste2 na kraj liste1
sort() list1.sort() Sortira listu na licu mesta
reverse() list1.reverse() Obrće redosled elemenata u listi1 na licu mesta
copy() list1.copy() Vraća plitku kopiju liste1
count() list1.count(elt) Vraća broj pojavljivanja elt u listi1
index() list1.index(elt) Vraća indeks elt u listi1
pop() list1.pop(index) Uklanja elt na datom indeksu i vraća ga.
remove() list1.remove(elt) Uklanja elt iz liste1
clear() list1.clear() Uklanja sve elemente iz liste1

Zaključak

Nadam se da vam je ovaj vodič pomogao da razumete kako da koristite neke od najčešćih metoda za rad sa listama u Python-u. Kao sledeći korak, naučite više o Python tuple-ovima i razlikama između lista i tuple-ova u Python-u.

Ako tek učite Python, možete pogledati ovaj spisak resursa za učenje koji su prilagođeni početnicima.