Python Dictionary: Creating a Dictionary
A dictionary in Python stores data as key-value pairs. This page shows the main ways to create a dictionary, the basic syntax, and a few common beginner mistakes to avoid.
If you are new to dictionaries, you may also want to read Python dictionaries explained or what is a dictionary in Python.
Quick example #
student = {
"name": "Ana",
"age": 20,
"is_active": True
}
print(student)
Output:
{'name': 'Ana', 'age': 20, 'is_active': True}
Use curly braces with key-value pairs separated by commas. Keys and values are joined with a colon.
What this page covers #
- What a dictionary is
- The basic syntax for creating one
- Common ways to make a dictionary
- Beginner mistakes to avoid
What a dictionary is #
A dictionary stores data as key-value pairs.
- A key is the label
- A value is the data connected to that label
For example, in this dictionary:
student = {
"name": "Ana"
}
"name"is the key"Ana"is the value
Dictionaries are useful when your data has labels, such as:
- name
- age
- country
Create a dictionary with curly braces #
This is the most common way to create a dictionary.
Use {} and write each item as key: value.
student = {
"name": "Ana",
"age": 20,
"course": "Python"
}
print(student)
Output:
{'name': 'Ana', 'age': 20, 'course': 'Python'}
Syntax rules #
- Use
{}to start and end the dictionary - Write each item as
key: value - Separate items with commas
- String keys are usually written in quotes
Example:
book = {
"title": "Python Basics",
"pages": 150,
"available": True
}
print(book)
This style is best when you already know the keys and values you want to add.
Create an empty dictionary #
Sometimes you want to start with an empty dictionary and add items later.
You can create an empty dictionary in two ways:
data = {}
print(data)
data = dict()
print(data)
Output:
{}
Both are correct.
Important beginner note #
{} creates an empty dictionary, not an empty set.
If you want an empty set, you must use set().
my_dict = {}
my_set = set()
print(type(my_dict))
print(type(my_set))
Output:
<class 'dict'>
<class 'set'>
Create a dictionary with dict() #
You can also use dict() to create a dictionary.
One simple way is with keyword arguments:
student = dict(name="Ana", age=20, active=True)
print(student)
Output:
{'name': 'Ana', 'age': 20, 'active': True}
This can be easy to read for small dictionaries.
Important rule for dict() #
When using keyword arguments:
- keys must be valid Python names
- you do not put quotes around the keys
This works:
user = dict(name="Sam", age=25)
print(user)
This does not work as keyword syntax:
# dict(first-name="Sam")
That key is not a valid Python name because it contains a hyphen.
If your keys are not valid Python names, use curly braces instead:
user = {
"first-name": "Sam"
}
print(user)
Create a dictionary from pairs #
dict() can also build a dictionary from key-value pairs.
This is useful when your data already exists as pairs, such as a list of tuples.
pairs = [("name", "Ana"), ("age", 20), ("city", "Lima")]
student = dict(pairs)
print(student)
Output:
{'name': 'Ana', 'age': 20, 'city': 'Lima'}
You can also use tuples directly:
student = dict((("name", "Ana"), ("age", 20)))
print(student)
This approach is helpful when you receive data in pair form and want to turn it into a dictionary.
Rules beginners should know #
Here are a few important dictionary rules:
- Keys must be unique
- If the same key appears more than once, the last value replaces earlier ones
- Values can repeat
- Keys are often strings, but other immutable types can also be keys
Duplicate key example #
data = {
"name": "Ana",
"name": "Maria"
}
print(data)
Output:
{'name': 'Maria'}
Only the last value is kept.
Keys can be numbers too #
scores = {
1: "low",
2: "medium",
3: "high"
}
print(scores)
Mutable types cannot be keys #
A list cannot be a dictionary key because lists are mutable.
This will cause an error:
# bad = {
# [1, 2]: "numbers"
# }
But a tuple can be used as a key because tuples are immutable:
good = {
(1, 2): "numbers"
}
print(good)
When to use a dictionary #
Use a dictionary when each value has a label.
Dictionaries are a good choice for:
- user data
- settings
- counters
- lookups
Example:
user = {
"username": "ana123",
"email": "ana@example.com",
"logged_in": True
}
print(user["email"])
If you want to learn how to read values from a dictionary, see how to access values in a dictionary in Python.
A list is usually a better choice when:
- labels are not needed
- you mostly care about position
- order matters more than named fields
Common mistakes #
Beginners often make these mistakes when creating dictionaries:
- Using commas instead of colons between keys and values
- Forgetting quotes around string keys when needed
- Repeating the same key and expecting both values to stay
- Using a mutable type like a list as a dictionary key
- Mixing up
{}for dictionaries and sets
Mistake: using a comma instead of a colon #
Wrong:
# student = {"name", "Ana"}
Correct:
student = {"name": "Ana"}
print(student)
Mistake: forgetting quotes around a string key #
Wrong:
# student = {name: "Ana"}
This only works if name is already a variable. If you want the key to be the text "name", use quotes.
Correct:
student = {"name": "Ana"}
print(student)
Mistake: expecting duplicate keys to stay #
data = {"age": 20, "age": 30}
print(data)
Output:
{'age': 30}
Helpful checks while learning #
These quick commands can help you inspect a dictionary:
my_dict = {"name": "Ana", "age": 20}
print(my_dict)
print(type(my_dict))
print(my_dict.keys())
print(my_dict.values())
print(len(my_dict))
Example output:
{'name': 'Ana', 'age': 20}
<class 'dict'>
dict_keys(['name', 'age'])
dict_values(['Ana', 20])
2
If you want to learn these methods in more detail, see Python dictionary keys(), Python dictionary values(), and Python dictionary items().
FAQ #
How do I create an empty dictionary in Python? #
Use {} or dict(). Both create an empty dictionary.
What is the easiest way to create a dictionary? #
The easiest way is usually curly braces with key-value pairs, like {"name": "Ana", "age": 20}.
Can dictionary keys be numbers? #
Yes. Keys can be numbers, strings, tuples, and other immutable types.
Can a dictionary have duplicate keys? #
A dictionary can be written with duplicate keys, but only the last value for that key is kept.
What is the difference between {} and dict()? #
{} is the most common literal syntax. dict() is a constructor and is useful for empty dictionaries, keyword arguments, or key-value pair data.
See also #
- Python dictionaries explained
- Python dictionary
get()method - How to add a key to a dictionary in Python
- How to check if a key exists in a dictionary in Python
- KeyError in Python: causes and fixes
Next step: learn how to access, add, and safely read dictionary values.