Content · Programming · Python

Python Mapping Unpacking with **

** mapping unpacking inserts key-value pairs into a new dictionary literal or passes them as keyword arguments when the keys are suitable strings. Later dictionary entries override earlier entries with the same key..

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

A program applies user preferences on top of defaults.

What You Need to Understand


** mapping unpacking inserts key-value pairs into a new dictionary literal or passes them as keyword arguments when the keys are suitable strings. Later dictionary entries override earlier entries with the same key.

When to Use It


A program applies user preferences on top of defaults.

Step-by-Step Python Example


defaults = {"color": "blue", "size": 10}
preferences = {"color": "green"}
settings = {**defaults, **preferences}
print(settings)

How the Example Works


All defaults are copied, then color is replaced by the preference value.

Example Output


{'color': 'green', 'size': 10}
{'x': 3, 'y': 2}

A Second Example


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

first_mapping = {"x": 1}
second_mapping = {"y": 2}
print({**first_mapping, **second_mapping, "x": 3})

Important Behavior and Edge Cases


Keyword calls with ** require string keys compatible with the target function; a mapping literal does not impose the same rule. Be careful with duplicate keyword arguments in function calls.

Try It Yourself


Combine two dictionaries and add one literal override key.

Common Beginner Mistakes


  • Keyword calls with ** require string keys compatible with the target function; a mapping literal does not impose the same rule. Be careful with duplicate keyword arguments in function calls.
  • Treating missing dictionary keys, replacement precedence, and shallow copies as if they had identical behavior in every context.

Key Takeaways


  • ** mapping unpacking inserts key-value pairs into a new dictionary literal or passes them as keyword arguments when the keys are suitable strings.
  • All defaults are copied, then color is replaced by the preference value.
  • Keyword calls with ** require string keys compatible with the target function; a mapping literal does not impose the same rule.
Share this resourceSend this page to someone who may find it useful.