Python 3 - słownik

Każdy klucz jest oddzielony od jego wartości dwukropkiem (:), elementy są oddzielone przecinkami, a całość ujęta jest w nawiasy klamrowe. Pusty słownik bez żadnych elementów jest zapisywany za pomocą tylko dwóch nawiasów klamrowych, na przykład: {}.

Klucze są unikalne w słowniku, a wartości nie mogą. Wartości słownika mogą być dowolnego typu, ale klucze muszą być niezmiennym typem danych, takim jak łańcuchy, liczby lub krotki.

Dostęp do wartości w słowniku

Aby uzyskać dostęp do elementów słownika, możesz użyć znanych nawiasów kwadratowych wraz z kluczem, aby uzyskać jego wartość. Oto prosty przykład -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

Wykonanie powyższego kodu daje następujący wynik -

dict['Name']:  Zara
dict['Age']:  7

Jeśli spróbujemy uzyskać dostęp do elementu danych za pomocą klucza, który nie jest częścią słownika, otrzymujemy następujący błąd -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])

Wykonanie powyższego kodu daje następujący wynik -

dict['Zara']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

Aktualizowanie słownika

Słownik można zaktualizować, dodając nowy wpis lub parę klucz-wartość, modyfikując istniejący wpis lub usuwając istniejący wpis, jak pokazano na prostym przykładzie podanym poniżej.

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Wykonanie powyższego kodu daje następujący wynik -

dict['Age']:  8
dict['School']:  DPS School

Usuń elementy słownika

Możesz usunąć poszczególne elementy słownika lub wyczyścić całą zawartość słownika. Możesz także usunąć cały słownik w jednej operacji.

Aby jawnie usunąć cały słownik, po prostu użyj delkomunikat. Oto prosty przykład -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['Name'] # remove entry with key 'Name'
dict.clear()     # remove all entries in dict
del dict         # delete entire dictionary

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Daje to następujący wynik.

Zgłaszany jest wyjątek, ponieważ after del dict, słownik już nie istnieje.

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note - Metoda del () została omówiona w kolejnej sekcji.

Właściwości kluczy słownikowych

Wartości słownikowe nie mają ograniczeń. Mogą to być dowolne obiekty Pythona, obiekty standardowe lub obiekty zdefiniowane przez użytkownika. Jednak to samo nie dotyczy kluczy.

Należy pamiętać o dwóch ważnych kwestiach dotyczących kluczy słownikowych -

(a)Więcej niż jeden wpis na klucz jest niedozwolony. Oznacza to, że żaden zduplikowany klucz nie jest dozwolony. W przypadku napotkania zduplikowanych kluczy podczas przypisywania wygrywa ostatnie przypisanie. Na przykład -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])

Wykonanie powyższego kodu daje następujący wynik -

dict['Name']:  Manni

(b)Klucze muszą być niezmienne. Oznacza to, że możesz używać łańcuchów, liczb lub krotek jako kluczy słownika, ale coś takiego jak ['klucz'] jest niedozwolone. Oto prosty przykład -

#!/usr/bin/python3

dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])

Wykonanie powyższego kodu daje następujący wynik -

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable

Wbudowane funkcje i metody słownika

Python zawiera następujące funkcje słownikowe -

Sr.No. Opis funkcji
1 cmp (dict1, dict2)

Nie jest już dostępny w Pythonie 3.

2 len (dict)

Podaje całkowitą długość słownika. Byłoby to równe liczbie pozycji w słowniku.

3 str (dict)

Tworzy drukowalną reprezentację słownika w postaci ciągu

4 typ (zmienna)

Zwraca typ przekazanej zmiennej. Jeśli przekazaną zmienną jest słownik, to zwróci typ słownika.

Python zawiera następujące metody słownikowe -

Sr.No. Metoda i opis
1 dict.clear ()

Usuwa wszystkie elementy słowniku dict

2 dict.copy ()

Zwraca płytkie kopia słowniku dict

3 dict.fromkeys ()

Utwórz nowy słownik z kluczami od seq i wartościami ustawionymi na wartość .

4 dict.get (key, default = None)

W przypadku klucza klucz zwraca wartość lub wartość domyślną, jeśli klucza nie ma w słowniku

5 dict.has_key (klucz)

Usunięte, należy użyć w pracy zamiast.

6 dict.items ()

Zwraca listę par krotek dict (klucz, wartość)

7 dict.keys ()

Zwraca listę kluczy słownika

8 dict.setdefault (key, default = None)

Podobnie jak get (), ale ustawi dict [key] = default, jeśli key nie jest jeszcze w dict

9 dict.update (dict2)

Dodaje pary klucz-wartość ze słownika dict2 do funkcji dict

10 dict.values ​​()

Zwraca listę słownika DICT wartości „s