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

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.