What Is a Dictionary in Python?

A dictionary in Python is a way to store related data using keys and values.

This is useful when your data has labels. For example, a person can have a name, age, and city. Instead of storing those values by position, a dictionary stores them by name.

This page explains the basic idea of a dictionary, what it stores, and when to use one.

Quick example #

person = {
    "name": "Alice",
    "age": 25,
    "city": "Paris"
}

print(person["name"])
print(person["age"])

Output:

Alice
25

Use a dictionary when you want to store related values using names called keys.

Simple definition #

A dictionary is a Python data type that stores data as key-value pairs.

  • A key is the name you use to find a value
  • A value is the data stored for that key
  • Dictionaries are useful when data has labels like name, age, or price

You will often see dictionaries used for:

  • user information
  • settings
  • product details
  • lookup data

What key-value pairs look like #

Here is a simple dictionary:

person = {"name": "Alice"}

In this example:

  • "name" is the key
  • "Alice" is the value

A dictionary connects the key to the value.

Some important points:

  • Each key points to one value
  • Keys in the same dictionary should be unique
  • Keys are often strings, but they do not have to be

For example, number keys also work:

scores = {
    1: "low",
    2: "medium",
    3: "high"
}

print(scores[2])

Output:

medium

Why dictionaries are useful #

Dictionaries are useful because they make data easier to read and understand.

Instead of remembering that person[0] is a name and person[1] is an age, you can use clear labels like:

  • person["name"]
  • person["age"]

This makes dictionaries a good choice for:

  • storing records
  • saving settings
  • mapping one value to another
  • looking up data by name or ID

They are often easier to read than long lists when the data is labeled.

Basic dictionary example #

You create a dictionary with curly braces {}.

  • Separate each key-value pair with a comma
  • Use a colon : between each key and value
  • Access a value with square brackets and the key

Example:

book = {
    "title": "Python Basics",
    "pages": 200,
    "price": 19.99
}

print(book["title"])
print(book["price"])

Output:

Python Basics
19.99

In this example:

  • "title" is a key
  • "Python Basics" is its value
  • book["title"] gets the value for that key

If you want to learn the syntax in more detail, see creating a dictionary in Python.

Important beginner facts #

There are a few important things beginners should know about dictionaries.

  • Dictionaries are mutable, which means you can change them after creating them
  • You can add new key-value pairs later
  • You can update existing values
  • Dictionary keys are not based on numeric positions like list indexes

Example:

person = {"name": "Alice", "age": 25}

person["age"] = 26
person["city"] = "Paris"

print(person)

Output:

{'name': 'Alice', 'age': 26, 'city': 'Paris'}

This means dictionaries are flexible. You can start with a small set of data and change it as needed.

Dictionary vs list #

A dictionary is not the same as a list.

Use a list when:

  • order matters
  • positions matter
  • you want to access items by index like items[0]

Use a dictionary when:

  • labels matter
  • you want named values
  • you want to access data by keys like person["name"]

Example of a list:

colors = ["red", "green", "blue"]
print(colors[0])

Example of a dictionary:

person = {"name": "Alice", "age": 25}
print(person["name"])

Lists use indexes like numbers. Dictionaries use keys like names or IDs.

If you want a broader comparison, see when to use lists vs tuples vs sets vs dictionaries.

Common beginner confusion #

Here are some common mistakes beginners make with dictionaries.

  • A dictionary is not the same as a list
  • You do not get values with person[0] unless 0 is actually a key
  • Missing keys can cause a KeyError
  • Keys are often strings, but they do not have to be

Example of a mistake:

person = {"name": "Alice", "age": 25}

print(person[0])

This will cause an error because 0 is not a key in the dictionary.

Common mistakes #

  • Trying to access a dictionary value with a list-style index
  • Using a key that does not exist
  • Confusing keys with values
  • Assuming dictionaries are only for strings

Example of a missing key:

person = {"name": "Alice"}

print(person["age"])

This raises a KeyError because "age" is not in the dictionary.

A safer option is often the get() method:

person = {"name": "Alice"}

print(person.get("age"))

Output:

None

To learn more, see Python dictionary get() and KeyError in Python: causes and fixes.

Useful debugging checks #

If you are not sure what your dictionary contains, these simple checks help:

print(my_dict)
print(my_dict.keys())
print(type(my_dict))
print("name" in my_dict)

These can help you answer questions like:

  • Is this really a dictionary?
  • What keys does it have?
  • Does a specific key exist?

Next steps #

Once you understand the basic idea, the next step is using dictionaries in simple tasks.

Good next topics are:

FAQ #

What is a dictionary in Python in simple words? #

It is a way to store data using names called keys and the data connected to them called values.

When should I use a dictionary instead of a list? #

Use a dictionary when your data has labels, such as name, age, or price.

Can dictionary keys be numbers? #

Yes. Keys can be numbers, strings, and some other immutable types.

Can a dictionary have duplicate keys? #

No. Each key should be unique in the same dictionary.

Are Python dictionaries changeable? #

Yes. Dictionaries are mutable, so you can add, remove, or update items.

See also #

Press Esc to close