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()
dict1 = {}
dict2 = dict()
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),
),
)
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),
),
)
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
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
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'}}
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'}}
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'>
dict1 = {}
print(type(dict1)) # wynik --> <class 'dict'>
dict1 = {} print(type(dict1)) # wynik --> <class 'dict'>