DEV Community

Cover image for Day 25/100: Dictionaries in Python – Key-Value Mastery
 Rahul Gupta
Rahul Gupta

Posted on

Day 25/100: Dictionaries in Python – Key-Value Mastery

Welcome to Day 25 of the 100 Days of Python series!
Today, we’ll master one of the most powerful and flexible data structures in Python — the dictionary.

Dictionaries let you store key-value pairs, giving you lightning-fast lookups and structured data organization. If you’ve used JSON or dealt with APIs, you’ve already seen dictionaries in action.

Let’s dive in and master them. 🐍💼


📦 What You’ll Learn

  • What dictionaries are and why they’re useful
  • How to create and access key-value pairs
  • Modifying, adding, and removing items
  • Dictionary methods and looping
  • Nested dictionaries and real-world use cases

🧠 What is a Dictionary?

A dictionary in Python is an unordered, mutable collection of key-value pairs.

🔹 Syntax

person = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}
Enter fullscreen mode Exit fullscreen mode

Keys are unique. Values can be any data type.


🔑 Creating a Dictionary

empty = {}
user = dict(name="John", age=25)
Enter fullscreen mode Exit fullscreen mode

🔍 Accessing Values by Key

print(person["name"])     # Alice
Enter fullscreen mode Exit fullscreen mode

✅ Safe Access with get()

print(person.get("age"))         # 30
print(person.get("email", "N/A"))  # N/A
Enter fullscreen mode Exit fullscreen mode

✏️ Modifying and Adding Items

person["age"] = 31            # Modify
person["email"] = "a@b.com"   # Add
Enter fullscreen mode Exit fullscreen mode

❌ Removing Items

person.pop("age")        # Removes by key
del person["city"]       # Another way
person.clear()           # Removes all
Enter fullscreen mode Exit fullscreen mode

🔁 Looping Through a Dictionary

for key in person:
    print(key, person[key])

# Or, more readable:
for key, value in person.items():
    print(f"{key}: {value}")
Enter fullscreen mode Exit fullscreen mode

🔄 Dictionary Methods

Method Purpose
keys() Returns all keys
values() Returns all values
items() Returns key-value pairs
get(key) Returns value or None/default
pop(key) Removes key and returns its value
update(dict2) Updates with another dictionary
clear() Clears all items

🧱 Nested Dictionaries

Dictionaries can hold other dictionaries:

users = {
    "alice": {"age": 30, "city": "Paris"},
    "bob": {"age": 25, "city": "Berlin"}
}

print(users["alice"]["city"])  # Paris
Enter fullscreen mode Exit fullscreen mode

💡 Dictionary Comprehension

squares = {x: x*x for x in range(5)}
print(squares)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Enter fullscreen mode Exit fullscreen mode

📊 Real-World Examples

1. Counting Frequency

text = "apple banana apple orange"
counts = {}
for word in text.split():
    counts[word] = counts.get(word, 0) + 1

print(counts)  # {'apple': 2, 'banana': 1, 'orange': 1}
Enter fullscreen mode Exit fullscreen mode

2. Storing API Responses (e.g., JSON)

response = {
    "status": "success",
    "data": {
        "user": "Alice",
        "id": 123
    }
}
print(response["data"]["user"])  # Alice
Enter fullscreen mode Exit fullscreen mode

3. Mapping IDs to Data

products = {
    101: "Shoes",
    102: "Shirt",
    103: "Bag"
}
print(products[102])  # Shirt
Enter fullscreen mode Exit fullscreen mode

🚫 Common Mistakes

  • ❌ Using mutable types like lists as keys
  • ❌ Assuming order (dictionaries are ordered since Python 3.7, but don’t rely on it for logic)
  • ✅ Use .get() when you're unsure if a key exists

🧠 Recap

Today you learned:

  • How dictionaries store data using key-value pairs
  • How to add, modify, delete, and access items
  • Useful methods like .get(), .items(), .update()
  • How to nest dictionaries and write comprehensions
  • Real-world applications like counters and JSON

Top comments (0)