Range()


Ako je potrebno vršiti iteraciju kroz niz brojeva, ugrađena funkcija range() to omogućava. Range() funkcija generiše listu. Funkcija range() vraća listu brojeva u datom rasponu uključujući prvi, bez poslednjeg. Može imati jedan, dva ili tri argumenta.

Ako funkcija range() ima samo jedan argument, tada je njena povratna vrednost lista brojeva od 0 pa do prvog celog broja manjeg od argumenta:


n=range(5)
print (n) 
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  [0, 1, 2, 3, 4]

Ako range() funkcija ima dva argumenta, onda ona vraća listu brojeva počevši od prvog argumenta do drugog argumenta (ne uključujući ga).

Primer kada funkcija range() ima dva argumenta:


l=range(2,5)
print (l)
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  [2, 3, 4]

Ako range() funkcija ima tri argumenta, onda ona vraća listu brojeva počevši od prvog argumenta, sa korakom drugog argumenta funkcije uz uslov da poslednji element liste bude manji od trećeg argumenta.

Primer kada funkcija range() ima tri argumenta:


k=range(1,10,2)
print (k)
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  [1, 3, 5, 7, 9]

Primer kada funkcija range() ima tri argumenta, a drugi argument, tj. korak je negativan broj:


m=range(-10, -100, -30)
print (m)
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  [-10, -40, -70]

Ispisujemo sve elemente liste korišćenjem range() funkcije:


#Dužine liste n je 3
#Range funkcija sa ovim parametrima vratiće listu [0,1,2]
n=["Jabuka","Banana","Kivi"]
def stampaj_listu(x):
#Kako indeksiranje liste počinje od 0
#U for petlji prolazimo kroz listu [0,1,2]
      for i in range(0,len(x)):
#I ispisujemo redom svaki element
        print (x[i])    
print (stampaj_listu(n))
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  Jabuka
      Banana
      Kivi
      None

Primer prikazuje kako pomoću range() funkcije u for petlji prolazimo kroz listu i svaki element liste množimo sa 2:


def moja_funkcija(x):
      for i in range(0, len(x)):
            x[i] = x[i] * 2
      return x
 #ovde pozivamo funkciju moja_funkcija koja ima argument listu generisanu pomoću range() funkcije
print (moja_funkcija(list(range(0,3))))

		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  [0, 2, 4]

Sabiramo sve elemente liste pomoću range() funkcije:


n = [3, 5, 7]
def sve(x):
      brojac = 0
      for i in range(len(x)):
           brojac+=x[i]
      return brojac    
print sve(n)
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  15

Xrange()


Xrange() funkcija je slična range() funkciji. One su potpuno iste u smislu funkcionalnosti, obe generišu listu celih brojeva. Razlikuju se jedino po tome što funkcija xrange() generiše privremenu listu i obično se koristi da generiše listu od milijardu i više elemenata. Ako želimo da vršimo iteraciju kroz listu više puta, najbolje je koristiti range() funkciju, zato što funkcija xrange() generiše listu celih brojeva svaki put kada pristupa nekom elementu liste.

Primer kada funkcija xrange() ima samo jedan argument:


for i in xrange(10):
    print (i)
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  0
      1
      2
      3
      4
      5
      6
      7
      8
      9

Primer kada funkcija xrange() ima dva argumenta:


for i in xrange(60, 70):
    print(i)
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  60
      61
      62
      63
      64
      65
      66
      67
      68
      69

Primer kada funkcija xrange() ima tri argumenta:


for i in xrange(100, 120,2):
    print(i)
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  100
      102
      104
      106
      108
      110
      112
      114
      116
      118

Spajanje listi


Dve liste možemo spojiti na više načina:

Prvi način: Spajanje pomoću operatora +.


lista = [2, 4, 5, 6, 'brojevi', 2.5, 134]
lista2 = ['a','b','c','d']
print (lista + lista2) 
 		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

>>  [2, 4, 5, 6, 'brojevi', 2.5, 134, 'a', 'b', 'c', 'd']

Drugi način: Pomoću funkcije append() koja dodaje elemente druge liste na kraj prve liste.


m = [1, 2, 3]
n = [4, 5, 6, 7]
def spajanje_listi(x, y):
      for i in y:
#dodajemo prvoj listi elemente druge liste
           x.append(i) 
      return x
print (spajanje_listi(m, n))
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

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

Sledeći primer pokazuje na koji način možemo da spojimo više listi. Funkcija spajanje_listi() kao argument ima *args, što omogućava da funkcija ima promenljiv broj argumenata, u našem slučaju listi. Pri pozivu, funkcija spajanje_listi() može da ima kao argumente jednu, dve, tri itd. liste.


m = [1, 2, 3]
n = [4, 5, 6]
o = [7, 8, 9,10]
def spajanje_listi(*args):
#za početak imamo praznu listu
       lista = [] 
       for i in args:
             lista += i
       return lista 
print (spajanje_listi(m, n, o))
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

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

Ako u okviru jedne liste imamo više listi, možemo ih spojiti u jednu listu. Najpre je potrebno definisati praznu listu. Zatim, u for petlji prolazimo kroz sve članove liste, pomoću funkcije range() i dodajemo ih, jedan po jedan u praznu listu:


n = [[1, 2, 3], [4, 5, 6, 7, 8, 9],[10]]
def spoj(x):
    lista=[]
    for i in range(len(x)):
        lista+=x[i]
    return lista
print (spoj(n))
		
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:

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