SEARCH
You are in browse mode. You must login to use MEMORY

   Log in to start

Liste

U ovoj lekciji naučit ćemo sve o listama u Pythonu koje su jako slične nizovima. Liste ne moraju uvijek biti homogene te ih to čini najmoćnijim i najčešće korištenim alatom u Pythonu.


🇭🇷
In Croatian
Created:
Liste


Public
Created by:
Ana Grgić


0 / 5  (0 ratings)



» To start learning, click login

1 / 25

[Front]


Lista (listina ili popis)
[Back]


je promjenljiv poredani niz članova objekata

Practice Known Questions

Stay up to date with your due questions

Complete 5 questions to enable practice

Exams

Exam: Test your skills

Test your skills in exam mode

Learn New Questions

Popular in this course

Learn with flashcards

Dynamic Modes

SmartIntelligent mix of all modes
CustomUse settings to weight dynamic modes

Manual Mode [BETA]

Select your own question and answer types
Other available modes

Listening & SpellingSpelling: Type what you hear
multiple choiceMultiple choice mode
SpeakingAnswer with voice
Speaking & ListeningPractice pronunciation
TypingTyping only mode

Liste - Details

Levels:

Questions:

150 questions
🇭🇷🇭🇷
Lista (listina ili popis)
Je promjenljiv poredani niz članova objekata
Članovi u listi
Su bilo kakvi objekti različitih tipova
Kako se definira lista?
Nabrajanjem članova odijeljenih zarezima (,) i smještenih unutar uglatih zagrada ([ ]). Dopušteno je ostaviti još jedan zarez iza zadnjeg člana liste.
Kako se dohvaćaju elementi liste?
Elementi liste dohvaćaju se pomoću indeksa, kao i kod dohvaćanja elemenata stringova (kod kojih je osnovni element pojedinačni znak).
Lista s tri člana - primjer
[42, 3.14, ’zdravo’ ]
Ugnježđena lista s tri člana - primjer
[’a’, [-45j, ’b’], 4.5]
Kako se označava prazna lista?
[ ] Prazna lista - Prazna lista se označava praznim parom uglatih zagrada
Na koji način Python omogućava stvaranje listi?
Na način koji je sličan onome koji se u matematici upotrebljava za definiranje skupova
Koje funkcije koristi Python za stvaranje listi?
U najjednostavnijem obliku u tu se svrhu mogu koristiti funkcija range(n) i petlja for : lista1= [ i for i in range(20) ] >>>[0,1,2,3,4,5,6,7,8,9,101112,13,14,15,16,17,18,19]
Funkcija list()
Postoji funkcija list() koja će također stvoriti listu. Pogledajmo: lista2= list(range(20)) >>>[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
Kako pristupiti elementima liste?
Možemo upotrijebiti operator indeksa [] da pristupimo elementima liste. Indeks počinje od 0. Dakle, popis s 5 elemenata imati će indeks od 0 do 4.
Što u listama u Python-u predstavlja negativno indeksiranje?
Python omogućava i negativno indeksiranje. Indeks -1 odnosi se na zadnji element, -2 na predzadnji element i tako dalje.
Statički unos
- broj elemenata je unaprijed poznat
Korištenje operatora za kreiranje niza istovrsnih podataka u statičkom unosu?
- Operator ponavljanja: Naredbom: a = [0]*5 stvaramo niz: a = [0, 0, 0, 0, 0].
Dinamički unos
- broj elemenata nije poznat unaprijed
Što je potrebno napraviti prije dinamičkog unosa liste?
Potrebno je također inicijalizirati listu, ali praznu
Kako bi izgledao dijagram toka za ispis niza 'a' od i članova?
Za i=0 do n-1 ispiši i-ti član niza a(i) :
Kod za ispis liste u jednom retku
For i in range(n): print(broj[i], ed="")
Kod za ispis niza bez korištenja indeksa
For br in broj: print(br, end="")
U čemu nam, pri stvaranju listi, pomažu funkcije iz modula random?
Pri razmatranju različitih algoritama praktično je generirati liste sa pseudonasumično odabranim vrijednostima.
Što vraća funkcija randint(a,b)?
Vraća pseudonasumične cijele brojeve iz intervala [a, b].
Kakve brojeve generira funkcija randrange?
Randrange(a, b) će generirati cijele brojeve iz intervala [a, b>. Ova funkcija ponekad je prikladnija za uporabu jer se ponaša u skladu s pravilima o gornjoj granici intervala u Pythonu.
Funkcije randint() i randrange() za stvaranje nasumičnih listi?
Funkcija randint() i randrange() mogu nam poslužiti za stvaranje nasumičnih listi. Primjer stvaranja liste od 100 nasumično generiranih prirodnih brojeva iz intervala [50,100>: N = [randrange(50, 100) for i in range(100) ]
Operatori za liste
Za liste vrijede isti operatori : +, *, in, not in kao i za stringove.
Metode za liste u Python-u
S obzirom da su liste također objekti, za njih su u Pythonu pripremljene ugrađene metode: append(), extend(), insert(), remove(), pop(), reverse(), sort()
Funkcija append()
Način uporabe: lista.append(x). Opis djelovanja: Dodaje element x na kraj liste list
Funkcija extend()
Način uorabe: lista.extend(L_e). Opis djelovanje: Dodaje elemente liste L_e na kraj liste lista.
Funkcija insert()
Način uporabe: lista.insert(i, x). Opis djelovanja: Umeće element x prije i-tog elementa liste.
Funkcija remove()
Način uporabe: lista.removev(x). Opis djelovanja: Izbacuje element x (ako ih ima više izbacuje onaj s najmanjim indexom, ako ga ne nađe u odgovarajućoj listi, javlja pogrešku.
Funkcija pop()
Način uporabe: lista.pop(i). Opis djelovanja: Izbacuje i-ti element iz liste i vraća ga; ako parametar i nije specificiran - izbacuje i vraća zadnji element
Funkcija reverse()
Nači uporabe: lista.reverse(). Opis djelovanja: Okreće listu lista ( okreće redoslijed elemenata liste)
Funkcija sort()
Način uporabe: lista.sort(). Opis djelovanje: Sortira listu lista ( prema rastućim vrijednostima parametara)
Osnovni algoritmi za rad s nizovima - Zbroj članova niza
Zbroj članova niza: z=0 za i=0 do n-1 z=z+a(i)
Ako želimo dobiti 3. član liste, koji broj upisujemo u uglate zagrade funkcije "list[]"?
Upisujemo u uglate zagrade broj 2 (indeksiranje počinje od 0!)
Odlomak liste - Kod cijepanja liste od i-tog do j-tog elementa, koji element nije uključen u odlomak?
Ako je lista od i-tog do j-tog elementa, onda j-ti element nije uključen u odlomak.
Što vraća funkcija min()?
Element s najmanjom vrijednosti u listi (ako su brojevi to će biti najmanji broj, a ako je string, vratit će string koji je prvi po abecedi).
Što vraća funkcija max()?
Element s najvećom vrijednosti.
Što vraća funkcija len()?
Broj elemenata u nizu, tj. njegovu duljinu (eng. length).
Osnovne operacije za rad s listama su?
+ -> nadovezivanje * -> uvišestručenje in -> element je u listi not in -> element nije u listi
Za što se koristi nadovezivanje?
Za spajanje dvije ili više lista u jednu.
Kako uvišestručenje proširuje listu?
Proširuje listu tako što kopira sve članove za neki cijeli broj.
Čemu služe operacije in i not in i koje vrijednosti vraćaju?
Služe za provjeru nalazili se traženi element u listi. Ako se nalazi, in će vratiti vrijednost True, a not in će vratiti False.
Što radi pridružba članu na i-tom mjestu?
Članu na i-tom mjestu će zamijeniti trenutni član na tom mjestu liste novim članom.
Je li moguće istovremeno zamijeniti više članova liste?
Da. Ako to želimo napraviti koristit ćemo se osnovnom formulom: [i:j+1], gdje je broj i od kojeg člana želimo vršiti zamjenu, a j zadnji član koji želimo promijeniti. Može se napraviti samo s varijablama tipa string!
Brisanje članova liste
Možemo izvršiti pojedinačno ili u skupini i vrši se sa ključnom riječi del.
Koje dvije metode koristimo da bi postojećoj listi dodali nove elemente?
Append() i extend() . Obje metode će nove elemente dodati na kraj postojeće liste.
Što radi metoda append()?
Na kraj liste dodaje jedan novi element.
Kojeg tipa je podatak ako smo koristili metodu append()?
Može biti i jedinstveni podatak kao npr. broj, ali može biti i nova lista. Ako dodamo listu ona će biti samo jedan element u listi u koju smo ju dodali.
Kako pristupamo elementima liste koju smo dodali preko metode append()?
Da bi smo pristupili elementima te liste moramo koristiti dvostruko indeksiranje [i][j], gdje je i pozicija dodane liste u početnoj listi, a j element u dodanoj listi kojem želimo pristupiti.
Što radi metoda extend()?
Dodaje više članova u listu iz nekog postojećeg iterablinog objekta (kao npr. drugi niz i lista ili string). Sve članove iz dodane liste ubacuje u postojeću kao zasebne elemente te liste.
Što radi metoda insert()?
Ako ne želimo dodati novi element na kraj liste. Dodaje se novi element prije odabranog elementa u listi.
Što radi metoda remove()?
Izbrisat će određeni element iz liste. Ako se u listi nalazi više istih elemenata, izbrisat će se onaj koji ima najmanji indeks. Ako ne postoji element za brisanje doći će do greške.
Što radi metoda pop()?
Izbacuje element iz lista i zatim ispisuje taj element. U funkciju možemo upisati indeks elementa koji želimo izbaciti i ispisati ili možemo zagrade ostaviti praznima. U tom slučaju će se izbaciti zadnji element iz liste.
Što radi metoda reverse()?
Obrnut će poredak elemenata u nizu. Prvi element će biti zadnji, drugi predzadnji i td.
Što radi metoda sort()?
Poredat će elemente u listi od najmanjeg prema najvećem.
Koje neobavezne parametre ima metoda sort() i kako oni funkcioniraju?
Dva neobvezna parametra reverse i key. list.sort(reverse=True|False, key=myFunc)
Što dozvoljava parametar key?
Dozvoljava upotrebu nekog drugog algoritma za sortiranje umjesto algoritma koji je ugrađen u Pythonu (Timsort koji je kombinacija insertion sorta i merge sorta).
Što je sažeta lista i kako je možemo koristiti?
Česta svrha for petlje je provjeravanje svakog člana unutar niza i tvorba nove liste dodajući rezultate izraza izračunatog na jednom ili svim članovima koji se provjeravaju. Oblik izraza, list comprehension omogućuje točno i neposredno izvršavanje ove zadaće.
Kako možemo koristiti sažetu listu?
Ovakva lista je izraz (a ne blok naredbi),i može ju se koristiti izravno (npr. kao stvarni argument u funkciji poziva, zatim u naredbi return ili kao podizraz za neki drugi izraz).
Sintaksa sažete liste?
Lista = [izraz for i in neka_lista] lista = [izraz for i in range(n)] lista = [izraz,…, izraz] – n istih izraza čini listu Uvrštenje nekog elementa u listu koja se konstruira može se uvjetovati: lista = [izraz for i in neka_lista if uvjet]
Koja je funkcija sažetih listi?
Sažete liste procjenjuju izraz za svaki element u listi i vraćaju listu rezultata. Zamislite ovo kao prečac za primjenu operacije na svaki element u listi i dobivanje nove liste, bez muke stvaranja privremene liste.
Što je bubble sort?
Algoritam za sortiranje koji radi tako što više puta prolazi kroz niz brojeva koji treba sortirati i uspoređuje svaki par susjednih elemenata, počevši s lijeva prema desno.
Kako radi bubble sort?
Uspoređuje vrijednosti dva susjedna elementa niza i po potrebi obavlja zamjenu mjesta.
Kako se obavlja zamjena mjesta u nizu brojeva kod bubble sorta?
Deklariranjem još jedne varijable – TEMP varijabla.
Zašto mjehurićasti sort alternativan naziv za bubble sort?
Nakon jednog prolaza kroz niz brojeva najveći element je “izguran“ na kraj niza odnosno ispliva kao mjehurić.
Kakva je zavisnost složenosti bubble sorta i broja elementa niza?
Zavisnost je izražena izrazom: Složenost = O(n2); gdje je n broj elemenata niza kojeg sortiramo. Bubble sort ima najlošiju složenost algoritma, a označavamo je sa O(n 2 ) gdje je n broj elemenata koji sortiramo.
Kakva je dinamika pomicanja elemenata niza?
Elementi s nižom vrijednosti se sa kraja niza pomiču na početak jako sporo, dok je situacija sa velikim elementima sa početka niza situacija drukčija jer se oni lako kreću prema kraju i mijenjaju.
Kako se nazivaju elementi niza sa velikim i malim vrijednostima u bubble sortu?
Naziv elemenata je respektivan: zec (element s velikom vrijednosti) ili kornjača (element s malom vrijednosti).
Što je sortiranje?
Postupak kojim se neka kolekcija elemenata uređuje tako da se elementi poredaju po nekom kriteriju.
Kako se obično radi sortiranje elemenata numeričkih nizova?
Obično se uređuje od manjeg prema većim elementima.
Kako se obično radi sortiranje elemenata nizova stringova?
Red elemenata određuje se prema leksikografskom rasporedu.
Koja je ideja selection sorta?
Odaberemo najmanji (ili najveći) element niza te da ga zamijenimo s prvim elementom niza.
Kako radi selection sort nakon prve zamjene elemenata niza?
Promatramo sve elemente niza osim tog prvog, stalno smanjujući podniz kojeg promatramo dok ne dođemo do posljednjeg elementa koji bi trebao biti najveći (ili najmanji) element niza.
Koliko elemenata u nizu pretražujemo pomoću selection sorta, gledajući po koracima?
U prvom koraku pretražujemo sve elemente u nizu (N), u drugom koraku pretražujemo N-1 elemente itd. do N-tog koraka gdje pretražujemo samo jedan element.
Koja je glavna razlika bubble sorta i selection sorta?
Bubble sort zamjenjuje susjedne elemente, ako su oni u krivom poretku (ako je prvi broj manji od drugoga, zamijenit će ih), dok selection sort sortira niz tražeći najmanji element nesortiranog niza te ga stavlja na početak.
Kako radi algoritam za selection sort?
Uzima najmanju vrijednost (ako niz svrstavamo silazno) u listi i stavlja ju na odgovarajuće mjesto u listi.
Kako u Pythonu implementiramo selection sort?
Pomoću 3 pokazivača: 1) na ključni element (i) 2) na indeks najmanjeg elementa u trenutnom prolazu (k) 3) na element s kojim uspoređujemo najmanji element trenutnog prolaza (j)
Što u prvom prolazu predstavlja prvi element?
Smatramo ga sortiranim i najmanjim - tj. minimumom, te se uspoređuje sa svim ostalim elementima.
Na koja 2 dijela selection sort dijeli uneseni niz?
Podniz elemenata koji su već sortirani, i podniz preostalih elemenata.
Pseudokod za selection sort
- ulaz je nesortirana lista a1, , ......, an, izlaz je sortirana lista 1. za i = 1, 2, n-1 radi korake 2 - 5 2. min = i 3. za j = i, … , n radi korak 4 4. ako je aj < aminmin = j 5. zamijeni (ai, , amin)
Koje sortove smatramo poboljšanim inačicama selection sorta?
1. Heap sort - sortiranje pomoću hrpe. 2. Patience sort 3. Smoothsort 4. Strand sort
Koja je ideja insertion sorta?
To je algoritam umetanja, sličan načinu na koji se slažu karte.
Na kojoj ideji se zasniva insertion sort algoritam?
Ubacivanje jednog po jednog elementa na "odgovarajuće" mjesto unutar već sortiranog dijela niza.