Build beginner Python Basics

Python Dictionary Methods You Should Know

· 1 min read

Creating Dictionaries

# Literal syntax
user = {"name": "Alice", "age": 30}

# From keyword arguments
user = dict(name="Alice", age=30)

# From a list of tuples
user = dict([("name", "Alice"), ("age", 30)])

get() — Safe Access

Access a key without risking a KeyError:

user = {"name": "Alice"}

user["email"]             # KeyError!
user.get("email")         # None
user.get("email", "N/A")  # "N/A"

Use get() whenever the key might not exist.

setdefault() — Get or Initialize

Returns the value if the key exists. Otherwise, sets the key to a default and returns it:

counts = {}
counts.setdefault("apple", 0)  # Returns 0, sets counts["apple"] = 0
counts["apple"] += 1            # counts = {"apple": 1}

update() — Merge Dictionaries

defaults = {"color": "blue", "size": "medium"}
overrides = {"size": "large", "weight": "heavy"}

defaults.update(overrides)
# {"color": "blue", "size": "large", "weight": "heavy"}

In Python 3.9+, you can also use the | operator:

merged = defaults | overrides

items(), keys(), values()

These return view objects for iteration:

user = {"name": "Alice", "age": 30, "city": "Paris"}

for key, value in user.items():
    print(f"{key}: {value}")

list(user.keys())    # ["name", "age", "city"]
list(user.values())  # ["Alice", 30, "Paris"]

pop() — Remove and Return

user = {"name": "Alice", "age": 30}

age = user.pop("age")       # Returns 30, removes "age"
email = user.pop("email", None)  # Returns None, no error

Dictionary Comprehensions

squares = {x: x**2 for x in range(6)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# Filter while creating
even_squares = {x: x**2 for x in range(6) if x % 2 == 0}
# {0: 0, 2: 4, 4: 16}
dictionaries data-structures beginner-python