Liste u Pythonu za - hdpio.hr u Pythonu za pocetnike i napredne_NIkola...Liste u Pythonu za...

Preview:

Citation preview

Liste u Pythonu za početnike i napredne

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Računalo u školi XVIII.Šibenik – Solaris, 29. rujan 2014.

Liste - općenito

• lista je složeni tip podataka

• L = [2, 4, 6, 7, 1] (deklaracija, tip..?)

• L = [3, 5, ‘a’, ‘hdpio’, 3.14]

• izravan pristup pojedinačnim elementima u listi

• L[0]; L[2]; L[:]; L[::]; L[-1]; L[::-1]

• konkateniranje i repliciranje

• L + [7, 2]

• 2 * L

• len(L)

• del(L[2])

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Liste – različiti načini kreiranja

• L = []

• L[0] = int(input()) ?

Primjer:

Nakon testa iz informatike, Ivicu zanima je li

ocjena koju je on dobio niža ili viša od prosjeka

dobivenih ocjena svih učenika?

I način: (min sintaksa)

L = 6 * [0]

L[1] = 2; L[0] = 3; L[5] = 4;

L[3] = 5; L[2] = 4; L[4] = 1;

0 00 0 00

3 52 4 41

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Liste – različiti načini kreiranja

II način:

L = N * [0]

for i in range(N):

L[i] = int(input())

III način:

L = []

for i in range(N):

x = int(input())

L = L + [x]

3 52 4 41

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

L = L + [int(input())]

L += [int(input())]

Liste – različiti načini kreiranja

IV način:

L = []

for i in range(N):

L.append(int(input())) # metoda append

Pitanje:

Kako kreirati kopiju postojeće liste?

kopija = L

kopija = L[:]

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

423211

Motivacijski zadatak

1 2 4 653 Ivica je trenutno:

-

1. korak: čekamo Ivicu

2. korak: kada prođe Ivica, zapišemo koji je trenutno

3. korak: za svakog sljedećeg skijaša koji prođe pitamo se:

1. ako je bolji od Ivice, Ivicu pomaknemo za jedno mjesto

niže

2. ako nije bolji od Ivice, slavimo

233

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

N = int(input())

voznja = []

for i in range(N):

voznja = voznja + [int(input())]

X = int(input())

for i in range(N):

if i + 1 == X:

ivica = voznja[i]

if i + 1 > X:

if voznja[i] <= ivica:

ivica = ivica + 1

print(ivica)

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Motivacijski zadatak

N = int(input())

voznja = []

for i in range(N):

voznja.append(int(input()))

X = int(input())

ivica = voznja[X - 1]

for i in range(X, N):

if voznja[i] <= ivica:

ivica += 1

print(ivica)

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Motivacijski zadatak

Liste – metode

Metode – učiti ih kada za to dođe vrijeme

lista.append (objekt) - dodaje zadani objekt na kraj liste

lista.count (objekt) - vraća broj pojavljivanja zadanoga objekta

u listi

lista.index (objekt) - vraća prvi indeks na kojemu se pojavljuje

zadani objekt u listi

lista.insert (i, objekt) - dodaje objekt u listu na zadanu

poziciju i

lista.pop (i)- vraća objekt na i-toj poziciji u listi ili objekt

na zadnjoj poziciji ako indeks nije naveden i briše taj objekt iz

liste

lista.remove (objekt) - briše prvi objekt iz liste koji je

jednak zadanomu objektu

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Liste – metode

Primjer:

U listi brojeva odredi najveći broj strogo manji od maksimalne

vrijednosti. Ako nema takve vrijednosti ispiši -1.

Rješenje:

M = max(L)

while L.count(M) > 0:

L.remove(M)

if len(L) != 0:

print(max(L))

else:

print(-1)

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Lista kao stog

Stog (Stack) je lista koja omogućuje dodavanje i izbacivanje

elemenata pri čemu poštuje LIFO pravilo, tj. Last-in, First-

out.

>>> stog = ['a', 'b', 'c', 'd']

>>> stog.append('e')

>>> stog.append('f')

>>> stog

['a', 'b', 'c', 'd', 'e', 'f']

>>> stog.pop()

'f'

>>> stog

['a', 'b', 'c', 'd', 'e']

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Lista kao red

Red (Queue) je lista koja omogućuje dodavanje i izbacivanje

elemenata pri čemu poštuje FIFO pravilo, tj. First-in,

First-out.

>>> red = ['a', 'b', 'c', 'd']

>>> red.append('e')

>>> red.append('f')

>>> red

['a', 'b', 'c', 'd', 'e', 'f']

>>> red.pop(0)

'a'

>>> red

['b', 'c', 'd', 'e', 'f']

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Lista listâ

>>> a = [ [1, 2, 3], [4, 5, 6] ]

>>> a[1][0]

4

for i in L:

for j in i:

print(j, end = ' ')

print()

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Malo lista u klasama..

class moja_lista( list ):

def umnozak( self ):

ret = 1

for i in self:

ret *= i

return ret

a = moja_lista([1, 2, 3])

# a = [1, 2, 3]

print(sum(a))

print (a.umnozak())

a.append(4)

print (a.umnozak())

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Pitanja..

Hvala na pozornosti!

Sada nastavljamo dalje s još

naprednijom uporabom lista..

Nikola Dmitrović, XV. gimnazija, Zagreb ndmitrovic@mioc.hr

Recommended