Python – #45 – dict()
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'>
