Słowniki w Pythonie

Słownik (Dictionary)

Słownik jest niesortowanym, zmiennym i indeksowanym zbiorem. W Pythonie słownik jest zapisywany za pomocą nawiasów kwadratowych, posiada klucze i wartości.

Przykład

Utwórz i wydrukuj słownik:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
print(thisdict)

Uruchomienie przykładu

Dostęp do elementów

Możesz uzyskać dostęp do elementów słownika, odwołując się do jego nazwy klucza w nawiasach kwadratowych:

Przykład

Pobierz wartość klucza "model":

x = thisdict["model"]

Uruchomienie przykładu

Istnieje również nazwa get() metoda da ci ten sam wynik:

Przykład

Pobierz wartość klucza "model":

x = thisdict.get("model")

Uruchomienie przykładu

Zmiana wartości

Możesz zmienić wartość określonego elementu, odwołując się do jego nazwy klucza:

Przykład

Zmień "year" na 2019:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["year"] = 2019

Uruchomienie przykładu

przeglądaj słownik

Możesz użyć for Przeglądaj słownik.

Podczas przeglądania słownika, zwracane są wartości słownika, ale jest również metoda zwracająca wartości.

Przykład

Wydrukuj wszystkie nazwy kluczy w słowniku pojedynczo:

for x in thisdict:
  print(x)

Uruchomienie przykładu

Przykład

Wydrukuj wszystkie wartości w słowniku pojedynczo:

for x in thisdict:
  print(thisdict[x])

Uruchomienie przykładu

Przykład

Możesz również użyć values() Funkcja zwraca wartości słownika:

for x in thisdict.values():
  print(x)

Uruchomienie przykładu

Przykład

Przeglądaj klucze i wartości za pomocą funkcji items():

for x, y in thisdict.items():
  print(x, y)

Uruchomienie przykładu

Sprawdź, czy klucz istnieje

Aby określić, czy w słowniku istnieje określony klucz, użyj: in Klucz:

Przykład

Sprawdź, czy "model" istnieje w słowniku:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
if "model" in thisdict:
  print("Tak, 'model' jest jednym z kluczy w słowniku thisdict")

Uruchomienie przykładu

Długość słownika

Aby określić liczbę elementów (par klucz-wartość) w słowniku, użyj: len() Metoda.

Przykład

Wydrukuj liczbę elementów w słowniku:

print(len(thisdict))

Uruchomienie przykładu

Dodawanie elementów

Można dodać element do słownika, używając nowego klucza i przypisując mu wartość:

Przykład

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["color"] = "red"
print(thisdict)

Uruchomienie przykładu

Usuwanie elementów

Istnieje kilka metod usuwania elementów z słownika:

Przykład

Metoda pop() usuwa element o określonej nazwie klucza:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.pop("model")
print(thisdict)

Uruchomienie przykładu

Przykład

popitem() Metoda usuwania ostatnio wstawionego elementu (w wersjach przed 3.7, usuwanie losowego elementu):

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.popitem()
print(thisdict)

Uruchomienie przykładu

Przykład

del Kluczowe usunięcie elementu o określonym nazwisku klucza:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict["model"]
print(thisdict)

Uruchomienie przykładu

Przykład

del Kluczowe całkowite usunięcie słownika:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict
print(thisdict) #this 会导致错误,因为 "thisdict" 不再存在。

Uruchomienie przykładu

Przykład

clear() Kluczowe puste słownik:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.clear()
print(thisdict)

Uruchomienie przykładu

kopiowanie słownika

Nie możesz skopiować słownika za pomocą dict2 = dict1 do kopiowania słownika, ponieważ:dict2 jest to tylko kopia dict1 odpowiednim odniesieniu, podczas gdy dict1 Zmiany w dict2 w.

Istnieje kilka metod do kopiowania, jedną z nich jest wbudowana metoda słownika copy()

Przykład

Używając copy() metoda do kopiowania słownika:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = thisdict.copy()
print(mydict)

Uruchomienie przykładu

Innym sposobem stworzenia kopii jest użycie wbudowanej metody dict()

Przykład

Używając dict() Metoda tworzy kopię słownika:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = dict(thisdict)
print(mydict)

Uruchomienie przykładu

Wcięte słowniki

Słownik może zawierać wiele słowników, co nazywa się słownikami wcięciami.

Przykład

Utwórz słownik zawierający trzy słowniki:

myfamily = {
  "child1" : {
    "name" : "Phoebe Adele",
    "year" : 2002
  },
  "child2" : {
    "name" : "Jennifer Katharine",
    "year" : 1996
  },
  "child3" : {
    "name" : "Rory John",
    "year" : 1999
  }
}

Uruchomienie przykładu

Lub jeśli chcesz wcielić trzy już istniejące słowniki jako słowniki:

Przykład

Utwórz trzy słowniki, a następnie utwórz słownik zawierający te trzy słowniki:

child1 = {
  "name" : "Phoebe Adele",
  "year" : 2002
}
child2 = {
  "name" : "Jennifer Katharine",
  "year" : 1996
}
child3 = {
  "name" : "Rory John",
  "year" : 1999
}
myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

Uruchomienie przykładu

konstruktora dict()

Można również użyć dict() Konstruktor tworzy nowy słownik:

Przykład

thisdict = dict(brand="Porsche", model="911", year=1963)
# Proszę zauważyć, że słowo kluczowe nie jest literalem ciągłym
# Proszę zauważyć, że użyto równości zamiast kropki w przypisaniu wartości
print(thisdict)

Uruchomienie przykładu

Metody słownikowe

Python oferuje zestaw wbudowanych metod dostępnych do użycia na słownikach.

Metoda Opis
clear() Usuń wszystkie elementy słownika
copy() Zwróć kopię słownika
fromkeys() Zwróć słownik posiadający określony klucz i wartość
get() Zwróć wartość dla określonego klucza
items() Zwróć listę krotek zawierających każdy klucz-wartość
keys() Zwróć listę kluczy słownika
pop() Usuń element posiadający określony klucz
popitem() Usuń ostatnio dodany parę klucz-wartość
setdefault() Zwróć wartość dla określonego klucza. Jeśli klucz nie istnieje, wstaw klucz z określoną wartością.
update() Aktualizuj słownik za pomocą określonego pary klucz-wartość
values() Zwróć listę wszystkich wartości w słowniku