Jak iterować po słowniku w Pythonie (klucze, wartości i elementy)

Dowiedz się, jak zapętlać lub iterować po słowniku Pythona. Odkryj metody pętli po kluczach, wartościach i parach klucz-wartość za pomocą przejrzystych, możliwych do uruchomienia przykładów.

Wypróbuj to rozwiązanie w Edytorze

Przegląd

Iterowanie po słownikach to podstawowe zadanie w programowaniu w języku Python, ponieważ słowniki są powszechnie używane do przechowywania danych typu klucz-wartość, takich jak rekordy bazy danych, ładunki API i ustawienia konfiguracyjne. Python udostępnia kilka intuicyjnych, wbudowanych metod przeglądania słowników, w zależności od tego, czy potrzebne są klucze, wartości, czy jedno i drugie. Zrozumienie tych metod ma kluczowe znaczenie dla pisania czystego, wydajnego i czytelnego kodu.

Najpopularniejszym sposobem jednoczesnej iteracji zarówno po kluczach, jak i wartościach jest użycie metody `.items()`. Ta metoda zwraca obiekt widoku zawierający krotki par klucz-wartość, które można łatwo rozpakować bezpośrednio w instrukcji pętli „for”. Jest to ogólnie preferowane rozwiązanie zamiast iteracji po kluczach i ręcznego wyszukiwania wartości, ponieważ jest to zarówno bardziej czytelne, jak i wydajniejsze.

Jeśli potrzebujesz tylko kluczy, możesz przejść bezpośrednio do samego słownika lub jawnie użyć metody `.keys()`. Aby iterować tylko po wartościach, Python udostępnia metodę `.values()`. Oba te obiekty widoku są dynamiczne, odzwierciedlają wszelkie zmiany wprowadzone w słowniku i obsługują testowanie członkostwa przy użyciu operatora „in”.

Dane wyjściowe kodu i wykonania

Ten kod demonstruje iterację po kluczach, wartościach i parach klucz-wartość słownika.

iterate_dict.py
Spróbuj w Edytorze
user = {"username": "alice", "role": "admin", "active": "True"}

# 1. Iterate over keys and values using items()
print("--- Keys and Values ---")
for key, value in user.items():
    print(f"{key}: {value}")

# 2. Iterate over keys only (default behavior)
print("\n--- Keys Only ---")
for key in user:
    print("Key:", key)

# 3. Iterate over values only
print("\n--- Values Only ---")
for val in user.values():
    print("Value:", val)
Wyjście terminala
--- Keys and Values ---
username: alice
role: admin
active: True

--- Keys Only ---
Key: username
Key: role
Key: active

--- Values Only ---
Value: alice
Value: admin
Value: True

Wdrażanie krok po kroku

  • Użyj user.items() w pętli for, aby jednocześnie wyodrębnić i rozpakować klucze i wartości.
  • Wykonaj pętlę bezpośrednio nad słownikiem (lub wywołaj funkcję .keys()), aby iterować tylko po klawiszach.
  • Użyj .values() do izolowania i iterowania wartości słownika.

Często zadawane pytania

Czy kolejność wstawiania jest zachowywana podczas iteracji po słowniku?

Tak, począwszy odPython 3.7+, słowniki gwarantują zachowanie kolejności wstawiania kluczy.

Czy możesz modyfikować słownik podczas iteracji po nim?

Nie, modyfikowanie kluczy (dodawanie lub usuwanie) podczas iteracji spowoduje zgłoszenie błędu RuntimeError. Zamiast tego zmodyfikuj kopię kluczy lub wartości.

Powiązane tematy

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.