Content · Programming · Python

Python Dictionary Views: dict_keys, dict_values, and dict_items

keys(), values() and items() return dynamic dictionary view objects. Views reflect later changes to the dictionary rather than making independent snapshot lists. See two practical examples, edge cases and common.

2 views Published Oct 17, 2026 Updated Oct 18, 2026 Admin

A dashboard needs to display changing inventory keys and their quantities.

What You Need to Understand


keys(), values() and items() return dynamic dictionary view objects. Views reflect later changes to the dictionary rather than making independent snapshot lists.

When to Use It


A dashboard needs to display changing inventory keys and their quantities.

Step-by-Step Python Example


stock = {"pen": 5, "paper": 2}
keys_view = stock.keys()
stock["pencil"] = 3
print(list(keys_view))
print(list(stock.items()))

How the Example Works


The saved view includes the new key because it reflects the dictionary. items() contains key-value tuples.

Example Output


['pen', 'paper', 'pencil']
[('pen', 5), ('paper', 2), ('pencil', 3)]
['a'] ['a', 'b']

A Second Example


Compare this smaller variation with the main example, then experiment with your own values.

data = {"a": 1}
snapshot = list(data.keys())
data["b"] = 2
print(snapshot, list(data.keys()))

Important Behavior and Edge Cases


Changing the size of a dictionary while iterating directly over a view can raise a runtime error. Snapshot with list(view) if structural mutation is required.

Try It Yourself


Create a keys view, add an entry, and compare it with an earlier list snapshot.

Common Beginner Mistakes


  • Changing the size of a dictionary while iterating directly over a view can raise a runtime error. Snapshot with list(view) if structural mutation is required.
  • Treating missing dictionary keys, replacement precedence, and shallow copies as if they had identical behavior in every context.

Key Takeaways


  • keys(), values() and items() return dynamic dictionary view objects.
  • The saved view includes the new key because it reflects the dictionary.
  • Changing the size of a dictionary while iterating directly over a view can raise a runtime error.
Share this resourceSend this page to someone who may find it useful.