Rječnik (*Dictionary*) ======================== *Dictionary* (rječnik) je tip podataka sličan polju, samo što index nije cjeli broj nego bilo koji *immutable* tip podataka kao što su *string*\ ovi ili brojevi. Kreiranje ------------- .. tabularcolumns:: p{ 2.25728933167in } p{ 2.25728933167in } p{ 2.25728933167in } .. list-table:: :header-rows: 0 * - .. literalinclude:: dict01.py :language: python .. literalinclude:: dict01.py.filtered :language: text - .. literalinclude:: dict02.py :language: python .. literalinclude:: dict02.py.filtered :language: text - .. literalinclude:: dict03.py :language: python .. literalinclude:: dict03.py.filtered :language: text Očitavanje i mijenjanje -------------------------- .. tabularcolumns:: p{ 2.25728933167in } p{ 2.25728933167in } p{ 2.25728933167in } .. list-table:: :header-rows: 0 * - .. literalinclude:: dict04.py.filtered :language: pycon - .. literalinclude:: dict05.py :language: python .. literalinclude:: dict05.py.filtered :language: text - .. literalinclude:: dict07.py :language: python .. literalinclude:: dict07.py.filtered :language: text Primjer: brojanje ponavljanja riječi u listi ---------------------------------------------------- .. literalinclude:: dict06.py :language: python .. literalinclude:: dict06.py.filtered :language: text U gornjem primjeru smo pazili da ne pokušamo očitati vrijednost ``brojac[i]`` ako ključ ``i`` već nije u rječniku ``brojac``. Da bi se ta provjera izbjegla, moguće je zadati default vrijednosti nekom rječniku koristeći funkciju :meth:`dict.setdefault` ili klasu :class:`collections.defaultdict`: .. literalinclude:: dict08.py :language: python .. literalinclude:: dict08.py.filtered :language: text Brojanje riječi se, prema tome, može riješiti i ovako: .. literalinclude:: dict10.py :language: python .. literalinclude:: dict10.py.filtered :language: text Dodatni primjeri na https://docs.python.org/2/library/collections.html#defaultdict-examples.