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()
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'>

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.