dict. keys()
Zwraca widok kluczy słownika, który zawsze pokazuje jego aktualną zawartość.
- Zwraca
- Obiekt widoku
dict_keys. - Zmienia oryginał
- Nie
Przykład
#modules = {"html": 11, "css": 9, "python": 12}
keys = modules.keys()
print(keys)
print(list(keys))
modules["react"] = 16
print(len(keys), "react" in keys)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
#slownik.keys()Więcej przykładów
#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()))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)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
#- dict.values()Zwraca widok wartości słownika, gotowy do pętli, sumowania i wyszukiwania.
- dict.items()Zwraca widok par (klucz, wartość), najwygodniejszy sposób na pętlę po słowniku.
- dict.get()Zwraca wartość dla klucza albo wartość domyślną, gdy klucza nie ma w słowniku.
- set.intersection()Zwraca nowy zbiór z elementami, które występują we wszystkich podanych zbiorach.
- forPętla przechodząca po kolejnych elementach sekwencji lub innego obiektu iterowalnego.
Widzisz błąd albo brakuje przykładu? Napisz do nas.