Dužina liste

Kao i za stringove, funkcija len vraća dužinu liste. Treba imati na umu da kako liste mogu sadržati druge liste kao svoje elemente, da funkcija len te elemente gleda kao i svake druge elemente.

  
lista = ["zemlja", 0, [3,1,2], "dan"]
print(len(lista))
druga_lista = [[2,1], [5,3], ["vuk", "medved"] ] 
print(len(druga_lista))
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  4

>>  3


Možemo da primetimo da je funkcija len vratila 4, iako je treći član liste zapravo lista [3,1,2]. A mogli smo da uradimo i sledeću stvar. Da odredimo dužinu nekog člana liste.

  
lista = ["zemlja", 120, [3,1,2], "dan"]
print(len(lista[2]))
print(len(lista[0]))
print(len(lista[1]))
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  3

>>  6

>>  Line 4: TypeError: object of type 'int' has no len()


Primetimo da funkcija radi i za stringove, a da je funkcija len nije definisana za brojeve.

Dodavanje elemenata u listu

Lista ne mora imati unapred zadatu veličinu, tako da se listi u Pajtonu mogu dodati članovi u svakom trenutku. Dodavanje elementa na kraj liste mozemo uraditi metodom append (o metodama ste više čitali u jednoj od prethodnih oblasti).


Poziv izleda na sledeci način:
<lista>.append(<element>)

  
lista = ["ovo", "je", "jedna"]
lista.append("lista")
print(lista)
            
Kopiraj

Ako hocemo da na kraj liste da dodamo vise elemenata, to radimo koristeci funkciju extend. Poziv je identičan kao i za funkciju append.


Poziv izleda na sledeci način:
<lista>.extend(<element>)

  
lista = [1, 2, 3]
lista.append([4,5])
print(lista)  
lista = [1, 2, 3]
lista.extend([4,5]) 
print(lista) 
         
Kopiraj

Primetimo da ako metodom append želimo da dodamo više elemenata dobićemo rezultat koji ne želimo, [1, 2, 3, [4, 5]], pa zato koristimo metod extend

Još jedan način koji ćemo koristiti za dodavanje elementa u listu je metod insert. Za razliku od prethodna dve metoda, metod insert dodaje element na poziciju pre indeksa koji mu prosledimo kao prvi argument. A kao drugi argument metodu insert prosleđujemo element koji želimo da dodamo.

  
lista = ["ovo", "je", "jedna", "lista"]
lista.insert(2,"umetnuti clan")
print(lista) 
            
Kopiraj

Pripadnost listi

Postoji lak način da proverimo da li neki element pripada ili ne pripada listi.
in i not in su bulovski operatori koji testiraju pripadnost.

  
voce = ['ananas', 'breskva', 'jagoda', 'kruska']
print('jabuka' in voce) 
print('jagoda' in voce) 
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  False

>>  True


Napomena: Ovo takođe radi i za stringove.

Funkcije i metode za rad sa listama

Pored funkcije len koju smo videli u prethodnom delu, postoje još mnogo funkcija koje nam olakšavaju rad sa listama. U ovom delućemo objasniti neke od njih.

Funkcije max i min kao argument primaju listu i vraćaju najveći element, odnosno najmanji element liste.

  
brojevi = [8, 1, 4, 18, 27, 165, 7]
print(max(brojevi))
print(min(brojevi))
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  165

>>  1


Za konvertovanje stringa u listu koristimo funkciju list, ona kao argument prima string i vraća listu, čiji je svaki element karakter zadatog stringa.

  
 print(list('Dnevnik'))
            

Nakon pokretanja programa kao rezultat dobićemo:


>>  ['D', 'n', 'e', 'v', 'n', 'i', 'k']

Metoda index i funkcija del

Za brisanje elementa iz liste koristimo funkciju del tako što joj kao argument prosledimo element niza koji hoćemo da izbrišemo.

  
recenica = ['Prolece', 'je', 'najlepse', 'godisnje', 'doba']
del(recenica[2])
print(recenica) 
del(recenica[1:3]) 
print(recenica)
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  ['Prolece', 'je', 'godisnje', 'doba']

>>  ['Prolece', 'doba']


Sada ćemo se malo više posvetiti metodama za rad nad listama.


Metodom index nalazimo prvo pojavljivanje traženog elementa u listi. Pozivamo ga na listu (tačka notacija), tako što mu kao argument prosledimo element čiju poziciju tražimo.


Poziv izgleda na sledeći način : <list>.index(<element>)

  
planine = ['Kopaonik', 'Goc', 'Zlatibor']
print(planine.index('Zlatibor'))
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  2

Metode count i pop

Metod count koristimo za prebrojavanje datog elementa u listi. Pozivamo ga na listu(tačka notacija), a kao argument mu prosledimo element koji brojimo.
Poziv izgleda na sledeći način: <list>.count(<element>)

  
lista = ['ja', 'volim', 'volim', 'jabuke', 'i', 'kruske']
print(lista.count('volim')) 
print(lista.count('grozdje')) 
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  2

>>  0


Pored funkcije del koju smo koristili za brisanje, postoji jos nekoliko načina da izbrišemo element iz liste. Metod pop pozivamo na listu, a kao agrument mu prosleđujemo poziciju elementa koji želimo da izbrišemo. Ovaj metod ima povratnu vrednost i vraća vrednost elementa koji smo izbrisali. Ovo može biti jako korisno, jer izbrisanu vrednost možemo da sačuvamo i kasnije iskoristimo ako to želimo.


Poziv izgleda na sledeći način : <list>.pop(<element>)

  
lista = ['ja', 'volim', 'volim', 'njene', 'palacinke']
lista.pop(2)
print(lista) 
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  ['ja', 'volim', 'njene', 'palacinke']

Metode remove i reverse

Još jedan način za brisanje elementa iz liste je metod remove, koji briše prvo pojavljivanje elementa iz liste. Poziva se na listu(tačka notacija), a kao argument se prosleđuje element koji želimo da izbrišemo.
Poziv izgleda na sledeći način: <list>.remove(<element>)

  
reke = ['Dunav', 'Sava', 'Morava', 'Amazon', 'Ibar']
reke.remove('Amazon')
print(reke) 
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  ['Dunav', 'Sava', 'Morava', 'Ibar']


Do sada smo videli način da preko isecanja liste obrnemo redosled elemenata u listi. Postoji metod reverse, koji radi istu stvar. Poziva se na listu i ne prima argumente.

Poziv izgleda na sledeći način : <list>.reverse()

  
brojevi = [1, 2, 3, 4, 5, 6, 7, 8, 9]
brojevi.reverse()
print(brojevi)
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


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