LISTE u Pythonu Kristina Ledinski Molim proitati Zato

  • Slides: 21
Download presentation
LISTE u Pythonu Kristina Ledinski

LISTE u Pythonu Kristina Ledinski

Molim pročitati: Zašto trebaju liste? ◦ U svim dosadašnjim programima nismo spremali podatke. Na

Molim pročitati: Zašto trebaju liste? ◦ U svim dosadašnjim programima nismo spremali podatke. Na primjer, imali smo vježbu u kojoj korisnik unosi ocjene, a ispisuje se prosječna ocjena. Koje su to sve ocjene bile, nismo pamtili jer nam nije trebalo! Pamtili smo samo zadnju unesenu ocjenu i to je bila jedna jedina varijabla koja je to pamtila. ◦ Liste nam omogućuju da sve ocjene spremimo u nju. Zamislite si listu kao običan popis bilo kakvih elemenata. ◦ S listama je moguće manipulirati, tj. raditi neke izmjene. Na primjer, osnovna metoda je dodavanje novog elementa (append), metoda za sortiranje liste (sort), metoda za izbacivanje elementa (pop) itd. Nazivi su na engleskom i dosta su intuitivni. Rad s listama nije težak, ali treba naučiti osnovne metode i puno vježbati da se naviknemo na liste.

Liste u Pythonu [ ] niz elemenata odvojenih zarezom u uglatim zagradama [ piše

Liste u Pythonu [ ] niz elemenata odvojenih zarezom u uglatim zagradama [ piše se tipkama ALTGR + F ] piše se tipkama ALTGR + G

Inicijalizacija prazne lista=[]

Inicijalizacija prazne lista=[]

Fleksibilnije od C++-a Lista može sadržavati podatke različitih tipova. lista 1 = ['info', 'prog',

Fleksibilnije od C++-a Lista može sadržavati podatke različitih tipova. lista 1 = ['info', 'prog', 100, 667] lista 2 = [1, 2, 3, 4, 5 ] lista 3 = ["a", "b", "c", "d"]

Pristup elementima Kao u stringovima, indeksi kreću od 0. lista 1 = ['info', 'prog',

Pristup elementima Kao u stringovima, indeksi kreću od 0. lista 1 = ['info', 'prog', 100, 667] lista 1[0] sadrži 'info' lista 1[1] sadrži 'prog' lista 1[2] sadrži 100

Ažuriranje liste Preko indeksa. lista 1[0]='kemija' Sada lista 1 glasi: ['kemija', 'prog', 100, 667]

Ažuriranje liste Preko indeksa. lista 1[0]='kemija' Sada lista 1 glasi: ['kemija', 'prog', 100, 667]

Što ako ažuriramo. . . nepostojeći element liste? lista 1[4]='dodatak' Javlja da je zadani

Što ako ažuriramo. . . nepostojeći element liste? lista 1[4]='dodatak' Javlja da je zadani indeks izvan raspona (out of range) – ovo je normalna i vrlo česta pogreška u programiranju.

Dodavanje u listu Metoda append(x) dodaje na desni kraj lista 1. append(‘kiki’) Sada lista

Dodavanje u listu Metoda append(x) dodaje na desni kraj lista 1. append(‘kiki’) Sada lista 1 glasi: ['kemija', 'prog', 100, 667, 'kiki’]

Mogu li s append dodati >1 elementa? lista 1. append('kiki', 'riki') ?

Mogu li s append dodati >1 elementa? lista 1. append('kiki', 'riki') ?

Proširivanje liste s nizom Metoda extend(niz) lista 2=['kiki', 'riki'] lista 1. extend(lista 2) Sada

Proširivanje liste s nizom Metoda extend(niz) lista 2=['kiki', 'riki'] lista 1. extend(lista 2) Sada lista 1 glasi: ['kemija', 'prog', 100, 667, 'kiki', 'riki']

>>> >>> [1, >>> [1, L = [1, 2] L. append(3) L. append(4) Primjeri

>>> >>> [1, >>> [1, L = [1, 2] L. append(3) L. append(4) Primjeri L 2, 3, 4] L. extend([5, 6, 7]) L. extend((8, 9, 10)) L 2, 3, 4, 5, 6, 7, 8, 9, 10] L. extend(range(11, 14)) L 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

ZADATAK S for petljom popuni listu od 10 elemenata, čije su vrijednosti brojevi 1

ZADATAK S for petljom popuni listu od 10 elemenata, čije su vrijednosti brojevi 1 -10. Na kraju, nakon petlje, ispiši elemente liste. 15_prva_lista. py

Krivo definiranje prazne liste to je ok petlja od točno 10 koraka u kojoj

Krivo definiranje prazne liste to je ok petlja od točno 10 koraka u kojoj brojač i ide od 0 do 9 to je ok Ovdje odmah u 1. koraku for petlje nastaje greška. Lista je prazna, a ja u 1. koraku for petlje, gdje i=0, pokušavam na indeksu 0 pridružiti broj 1! Ali nemam indeks 0 u listi, jer lista je prazna!

ovo je pravilan način, s metodom append dodajem novi element i pridružujem mu vrijednost

ovo je pravilan način, s metodom append dodajem novi element i pridružujem mu vrijednost i+1 Točno ILI

Proučiti i isprobati na vlastitim primjerima Funkcije i metode za liste – na slj.

Proučiti i isprobati na vlastitim primjerima Funkcije i metode za liste – na slj. slajdu je popis Isprobaj sve metode s popisa u Shellu u Pythonu na vlastitom primjeru liste.

. pop(in) Uzima element s indeksom in iz liste te ga vraća kao rezultat.

. pop(in) Uzima element s indeksom in iz liste te ga vraća kao rezultat. Ako se ne napiše argument (prazne zagrade), uzima zadnji element iz liste. Taj element se nakon ove funkcije više ne nalazi u listi, tj. izbrisan je iz nje. . append(x) Dodavanje novog elementa x na kraj liste. . extend(L) Na kraj liste dodaje elemente druge liste (L). Omogućuje da unutar liste ubacimo element na poziciju određenu indeksom. Potrebna su dva . insert(in, x) argumenta unutar zagrada, indeks in i element x koji želimo unijeti na indeks in. U skladu s time, elementi nakon te pozicije u listi pomiču se za jedno mjesto u desno. . remove(x) U listi briše prvi element koji ima vrijednost jednaku x. . count(x) U listi prebrojava pojavljivanje vrijednosti x. . index(x) U listi traži vrijednost x i vraća indeks pozicije na kojoj se on nalazi. . reverse() Mijenja poredak liste u suprotni (inverzni). Ne treba argument. . sort() Sortira listu u kojoj je to moguće. Miks stringova i brojeva ne može sortirati. Ne treba argument, ali može imati parametar reverse=True upisan u zagrade . clear() Briše sve elemente liste. Ne treba argument. . copy() Stvaranje kopije liste. Npr. lista 2=lista 1. copy()

ZADATAK Korisnik unaša 10 ocjena, koje se upisuju u listu. Program uredno, sa zarezom

ZADATAK Korisnik unaša 10 ocjena, koje se upisuju u listu. Program uredno, sa zarezom i razmakom između, bez uglatih zagrada, ispisuje ocjene u sortiranom (uzlaznom) poretku. 15_prosjek_ocj. py

PRIMJER RJEŠENJA definiranje prazne liste petlja od 10 koraka unos ocjene dodavanje ocjene o

PRIMJER RJEŠENJA definiranje prazne liste petlja od 10 koraka unos ocjene dodavanje ocjene o u listu sortiranje liste for petlja koja prolazi kroz listu do predzadnjeg elementa ispis ocjene i zareza nakon nje ispis posljednjeg elementa liste, on je izdvojen da samo on nema zarez nakon sebe

Razlika između. sort() i sorted() ◦. sort() je metoda (metode se pišu s točkom

Razlika između. sort() i sorted() ◦. sort() je metoda (metode se pišu s točkom ispred) ◦ ne vraća novu listu nego vrši sortiranje postojeće ◦ sorted() je funkcija (u zagrade se upiše ime liste) ◦ vraća novu sortiranu listu

>>> lista=[5, 7, 6, 4, 2] >>> lista. sort() >>> lista [2, 4, 5,

>>> lista=[5, 7, 6, 4, 2] >>> lista. sort() >>> lista [2, 4, 5, 6, 7] sortirana lista nakon korištenja metode sort(), početni poredak više nije nigdje spremljen, lista se promijenila >>> lista=[5, 7, 6, 4, 2] >>> lista 2=lista. sort() >>> lista 2 >>> lista [2, 4, 5, 6, 7] pokušavamo listi lista 2 pridružiti sortirane elemente lista s metodom sort() ali u listi lista 2 na taj način nema ničega lista je sortirana (čim negdje u kodu napišemo sort(), ona se sortira) >>> lista=[5, 7, 6, 4, 2] >>> lista 2=sorted(lista) >>> lista [5, 7, 6, 4, 2] >>> lista 2 [2, 4, 5, 6, 7] >>> listi lista 2 pridružujemo sortirane elemente lista ostaje nepromijenjena (nesortirana) lista 2 je sortirana lista