dict.keys()

Zwraca widok kluczy słownika, który zawsze pokazuje jego aktualną zawartość.

Zwraca
Obiekt widoku dict_keys.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
Python
modules = {"html": 11, "css": 9, "python": 12}

keys = modules.keys()
print(keys)
print(list(keys))

modules["react"] = 16
print(len(keys), "react" in keys)
Wynikzapisany wynik, możesz go sprawdzić
dict_keys(['html', 'css', 'python'])
['html', 'css', 'python']
4 True

Definicja i zastosowanie

#

Metoda keys() zwraca obiekt widoku z kluczami słownika w kolejności ich dodania. Widok nie jest kopią: gdy słownik się zmieni, widok od razu pokaże nowe klucze.

Po widoku możesz iterować, sprawdzać jego długość przez len() i przynależność przez in. Zapisy for key in slownik oraz key in slownik robią to samo bez wywoływania keys(), dlatego w tych miejscach metodę zwykle się pomija.

Widok kluczy działa jak zbiór i obsługuje operatory &, | i -. Pozwala to szybko znaleźć klucze wspólne dla dwóch słowników albo te, których w jednym z nich brakuje. Gdy potrzebujesz listy, na przykład żeby odczytać klucz po indeksie, zamień widok przez list().

Składnia

#
Składnia
slownik.keys()

Więcej przykładów

#
Porównanie kluczy dwóch słowników
Python
defaults = {"theme": "dark", "lang": "pl", "sound": True}
user = {"lang": "en", "avatar": "lis.png"}

print(sorted(defaults.keys() & user.keys()))
print(sorted(defaults.keys() - user.keys()))
print(sorted(user.keys() - defaults.keys()))
Wynikzapisany wynik, możesz go sprawdzić
['lang']
['sound', 'theme']
['avatar']
Usuwanie kluczy w pętli
Python
scores = {"Ania": 92, "Kuba": 0, "Ola": 0}

try:
    for name in scores.keys():
        if scores[name] == 0:
            del scores[name]
except RuntimeError as error:
    print("Błąd:", error)

for name in list(scores.keys()):
    if scores[name] == 0:
        del scores[name]

print(scores)
Wynikzapisany wynik, możesz go sprawdzić
Błąd: dictionary changed size during iteration
{'Ania': 92}

Dobre praktyki

#
  • Do sprawdzania klucza pisz if key in slownik:, bez .keys(). Efekt jest ten sam, a zapis krótszy.
  • Nie dodawaj ani nie usuwaj kluczy podczas pętli po słowniku. Przejdź po kopii list(slownik) albo zbuduj nowy słownik wyrażeniem słownikowym.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.