Typ - dict()
Dict jest zmienną, która pozwala przechowywać wiele obiektów w parze klucz: wartość.
- dict’y są uporządkowane (od wersji 3.7) (ordered). Kolejność obiektów w dictcie jest zdefiniowana i nie zmienia się.
- dict’y są obiektami mutowalnymi (Mutable). Oznacza to, że pozwalają zmieniać swoją zawartość. Do istniejącego dict’a możemy dodawać obiekty, możemy je usuwać oraz możemy modyfikować.
- dict’y nie pozwalają przechowywać obiektów o powtarzających się kluczach. Powtarzające się klucze są nadpisywane.
- dict’y pozwalają przechowywać jako klucze jedynie obiekty hashowalne (hashable), to jest int, float, bool, str, tuple, None.
Deklaracja dict’a bez wartości:
dict1 = {} dict2 = dict()
Deklaracja dict’a z watościami:
dict1 = { 'imię': 'Dominik', 'nazwisko': 'Bednarski', 'klucz': 1, 'nastepny_klucz': 4.2, 'lista': [2, 3, 4], 'tuple': (2, 3, 4), 'inny_dict': { 'klucz': 'tekst', 3: 4, 2.3: 'cos tam', }, True: 'tak', None: False, (1, 2): 1, } dict2 = dict( klucz1 = 'wartość1', klucz2 = [2, 3, 4], inny_dict = dict( klucz1 = 'text', klucz_pole1 = (2, 3, 4), ), )
Zwracanie obiektów z dict’a:
dict1 = { 'imię': 'Dominik', 'nazwisko': 'Bednarski', 'klucz': 1, 'nastepny_klucz': 4.2, 'lista': [2, 3, 4], 'tuple': (2, 3, 4), 'inny_dict': { 'klucz': 'tekst', 3: 4, 2.3: 'cos tam', }, True: 'tak', None: False, (1, 2): 9, } print(dict1['imię']) # wynik --> Dominik print(dict1['klucz']) # wynik --> 1 print(dict1['inny_dict']) # wynik --> {'klucz': 'tekst', 3: 4, 2.3: 'cos tam'} print(dict1['inny_dict']['klucz']) # wynik --> tekst print(dict1[True]) # wynik --> tak print(dict1[(1, 2)]) # wynik --> 9
Dict’y przechodują jedynie hashowalne obiekty (dla klucza):
Dla wartości dozwolony jest każdy typ obiektu.
dict1 = { 1: 1, } print(dict1) # wynik --> {1: 1} dict1 = { 1.2: 1.4, } print(dict1) # wynik --> {1.2: 1.4} dict1 = { True: False, } print(dict1) # wynik --> {True: False} dict1 = { None: None, } print(dict1) # wynik --> {None: None} dict1 = { 'text': 'tekst', } print(dict1) # wynik --> {'text': 'tekst'} dict1 = { (1,2): (10, 20), } print(dict1) # wynik --> {(1, 2): (10, 20)} dict1 = { [1, 2]: [11, 22], } # wynik --> TypeError: unhashable type: 'list' dict1 = { [1, 2]: 'tekst', } # wynik --> TypeError: unhashable type: 'list' dict1 = { 'text': [1, 2], } print(dict1) # wynik --> {'text': [1, 2]} dict1 = { {2, 3}: {22, 33}, } # wynik --> TypeError: unhashable type: 'set' dict1 = { {2, 3}: 'tekst', } # wynik --> TypeError: unhashable type: 'set' dict1 = { 'text': {2, 3}, } print(dict1) # wynik --> {'text': {2, 3}} dict1 = { {'text': 'tekst'}: {'text2': 'tekst2'}, } # TypeError: unhashable type: 'dict' dict1 = { {'text': 'tekst'}: 'tekst', } # TypeError: unhashable type: 'dict' dict1 = { 'text': {'text2': 'tekst2'}, } print(dict1) # wynik --> {'text': {'text2': 'tekst2'}}
Typ zmiennej obiektu dict:
dict1 = {} print(type(dict1)) # wynik --> <class 'dict'>