Čitaj ugnježdene podatke spolja ka unutra, jedan nivo po jedan.
Liste biraju vrednosti po poziciji, a rečnici po smislenim ključevima. Ugnježdena kolekcija čuva drugu kolekciju kao jednu od svojih vrednosti, što programima pomaže da organizuju učenike i ocene, kurseve i lekcije ili projekte i zadatke.
student = {"name": "Ana", "scores": [8, 9]}
print(student["scores"][1])Nemoj čitati dug izraz odjednom. students[0] bira prvi rečnik; students[0]["scores"] bira njegovu listu ocena; students[0]["scores"][1] bira jednu vrednost unutar te liste.
Prati putanju: students → lista; students[0] → prvi rečnik; students[0]["scores"] → [8, 9]; zatim indeks 1 → 9. Ako je trenutna vrednost rečnik, koristi ključ; ako je lista, koristi indeks.
I ugnježdene vrednosti mogu da se menjaju: students[0]["scores"][1] = 10 menja jednu vrednost duboko u strukturi. Spoljašnja lista, rečnik i lista ocena ostaju iste kolekcije.
course = {"name": "Python Foundations", "student": {"name": "Ana", "scores": [8, 10, 9]}}
print(course["student"]["scores"][1])Najpre izaberi "student", zatim unutrašnju listu "scores", pa indeks 1. Ista strategija spolja ka unutra radi na svakom nivou.
for student in students:
print(student["name"])Petlja u svakoj iteraciji daje jedan rečnik učenika, pa student["name"] koristi ključ u tom trenutnom rečniku.
projects[1]["tasks"][2]projects[1] bira drugi rečnik; ["tasks"] bira njegovu listu; [2] bira "Deploy".
Prati podatke jedan nivo po jedan
- Utvrdi trenutnu vrednostZapitaj se koju vrednost i koji tip kolekcije sada imaš.
- Izaberi ključ ili indeksZa rečnik koristi ključ, a za listu indeks.
- Koristi dobijenu vrednost za sledeći korakSvaki pristup vraća sledeću vrednost na putanji.
Česte početničke greške
- Korišćenje ključa na listi
students["name"]ne radi zato što je students lista; najpre izaberi učenika indeksom. - Korišćenje indeksa na rečniku
student[0]ne radi zato što rečniku treba ključ. - Preskakanje nivoaPrati svaku vraćenu kolekciju pre nego što pokušaš da izabereš njenu unutrašnju vrednost.
- Korišćenje pogrešnog indeksa ili ključaIndeks izvan liste može da izazove
IndexError; nedostajući ključ rečnika može da izazoveKeyError.
