How to Get All Values from a Dictionary in Python

If you want all values from a Python dictionary, the simplest solution is to use dict.values().

This page shows you:

  • How to get all values from a dictionary
  • What dict.values() returns
  • When to convert the result to a list
  • How to loop through dictionary values

Quick answer

person = {"name": "Ana", "age": 25, "city": "Lima"}

values = person.values()
print(values)
print(list(values))

Output:

dict_values(['Ana', 25, 'Lima'])
['Ana', 25, 'Lima']

Use dict.values() to get all dictionary values. Convert it with list() if you need a regular list.

What this page helps you do

  • Get all values from a dictionary
  • Understand what dict.values() returns
  • Convert dictionary values to a list when needed
  • Loop through dictionary values

Use values() to get all values

Call values() on a dictionary object.

student = {"name": "Maya", "grade": "A", "age": 16}

values = student.values()
print(values)

Output:

dict_values(['Maya', 'A', 16])

This is the standard way to get dictionary values in Python.

A few important points:

  • values() returns the values only
  • It works with strings, numbers, lists, and other Python objects
  • It does not return the keys

If you want to understand the method itself in more detail, see the dict.values() method reference.

Convert values to a list

Sometimes you need a regular list instead of a dictionary view. In that case, wrap the result in list().

student = {"name": "Maya", "grade": "A", "age": 16}

value_list = list(student.values())
print(value_list)

Output:

['Maya', 'A', 16]

Use list(my_dict.values()) when you need:

  • A list you can print more clearly
  • A value at a specific position
  • To pass the values to code that expects a list

Example:

student = {"name": "Maya", "grade": "A", "age": 16}

value_list = list(student.values())

print(value_list[0])
print(value_list[1])

Output:

Maya
A

The order follows the dictionary insertion order.

If you also need the keys, see how to get all keys from a dictionary in Python.

Loop through all values

If you want to process each value, loop through my_dict.values().

prices = {"apple": 2, "banana": 1, "orange": 3}

for value in prices.values():
    print(value)

Output:

2
1
3

Each loop gives you one value.

This is useful when you want to:

  • Print all values
  • Check each value
  • Do calculations or other processing

For example:

prices = {"apple": 2, "banana": 1, "orange": 3}

for value in prices.values():
    if value > 1:
        print("Greater than 1:", value)

Output:

Greater than 1: 2
Greater than 1: 3

Do not loop over the dictionary directly if you only want values. Looping over a dictionary by itself gives you the keys.

prices = {"apple": 2, "banana": 1, "orange": 3}

for item in prices:
    print(item)

Output:

apple
banana
orange

If you want more examples, see how to loop through a dictionary in Python.

Understand the result of values()

A common beginner mistake is expecting values() to return a list.

It does not.

It returns a view object linked to the dictionary. That means it reflects changes made to the dictionary.

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

values = person.values()
print(list(values))

person["city"] = "Lima"
print(list(values))

Output:

['Ana', 25]
['Ana', 25, 'Lima']

Notice that values changed after the dictionary changed.

If you need a separate snapshot that does not change, convert it to a list.

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

value_list = list(person.values())
print(value_list)

person["city"] = "Lima"
print(value_list)

Output:

['Ana', 25]
['Ana', 25]

This difference matters when you plan to store the result and use it later.

If you want a broader explanation of dictionaries, see Python dictionaries explained.

When to use this vs other dictionary methods

Use the dictionary method that matches the data you need:

  • Use values() for values only
  • Use keys() for keys only
  • Use items() for both keys and values together

Example:

person = {"name": "Ana", "age": 25, "city": "Lima"}

print(person.keys())
print(person.values())
print(person.items())

Output:

dict_keys(['name', 'age', 'city'])
dict_values(['Ana', 25, 'Lima'])
dict_items([('name', 'Ana'), ('age', 25), ('city', 'Lima')])

Use items() when you need both parts together in a loop:

person = {"name": "Ana", "age": 25, "city": "Lima"}

for key, value in person.items():
    print(key, "->", value)

If that is what you need, see the dict.items() method reference.

Common mistakes

These are the most common problems beginners run into.

Using the dictionary directly and getting keys instead of values

This gives keys, not values:

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

for item in person:
    print(item)

Output:

name
age

If you want values, use:

for value in person.values():
    print(value)

Expecting values() to return a list

This is a view object:

person = {"name": "Ana", "age": 25}
print(person.values())
print(type(person.values()))

Output:

dict_values(['Ana', 25])
<class 'dict_values'>

Convert it if needed:

print(list(person.values()))

Trying to access values by index without converting first

This will fail:

person = {"name": "Ana", "age": 25}
values = person.values()

# print(values[0])  # TypeError

Instead, do this:

person = {"name": "Ana", "age": 25}
values = list(person.values())

print(values[0])

Mixing up keys(), values(), and items()

Remember:

  • keys() → keys only
  • values() → values only
  • items() → key-value pairs

If you need help getting a single value or working with dictionary data, see how to access values in a dictionary in Python.

FAQ

How do I get all values from a dictionary in Python?

Use my_dict.values(). If you need a list, use list(my_dict.values()).

Does values() return a list?

No. It returns a dictionary view object. Convert it to a list if needed.

Can I loop through dictionary values only?

Yes. Use:

for value in my_dict.values():
    print(value)

Can I index dictionary values like values[0]?

Not directly from values(). Convert first with list(my_dict.values()).

See also