Problem Formulation and Solution Overview
If you print all values from a dictionary in Python using print(dict.values())
, Python returns a dict_values
object, a view of the dictionary values. The representation prints the values enclosed in a weird dict_values(...)
wrapper text, for example: dict_values([1, 2, 3])
.
Here’s an example:
my_dict = {'name': 'Carl', 'age': 42, 'income': 100000} print(my_dict.values()) # dict_values(['Carl', 42, 100000])

There are multiple ways to change the string representation of the values, so that the print()
output doesn’t yield the strange dict_values
view object.
Method 1: Convert to List
An easy way to obtain a pretty output when printing the dictionary values without dict_values(...)
representation is to convert the dict_values
object to a list using the list()
built-in function. For instance, print(list(my_dict.values()))
prints the dictionary values as a simple list.
Here’s an example:
my_dict = {'name': 'Carl', 'age': 42, 'income': 100000} print(list(my_dict.values())) # ['Carl', 42, 100000]
So far, so simple. Read on to learn or recap some important Python features and improve your skills. There are many paths to Rome! ๐๏ธ
Method 2: Unpacking
An easy and Pythonic way to print a dictionary without the dict_values
prefix is to unpack all values into the print()
function using the asterisk operator. This works because the print()
function allows an arbitrary number of values as input. It prints those values separated by a single whitespace character per default.
Here’s an example:
my_dict = {'name': 'Carl', 'age': 42, 'income': 100000} print(*my_dict.values()) # Carl 42 100000
It cannot get any more concise, frankly. ๐
Of course, you can change the separator and end arguments accordingly to obtain more control of the output:
my_dict = {'name': 'Carl', 'age': 42, 'income': 100000} print(*my_dict.values(), sep='\n', end='\nThe End')
Output:
Carl 42 100000 The End
Do you need even greater flexibility than this? No problem! See here: โคต๏ธ
Method 3: String Join Function and Generator Expression
To convert the dictionary values to a single string object without 'dict_values'
in it and with maximal control, you can use the string.join()
function in combination with a generator expression and the built-in str()
function.
Here’s an example:
my_dict = {'name': 'Carl', 'age': 42, 'income': 100000} print(', '.join(str(x) for x in my_dict.values())) # Carl, 42, 100000
๐ก Note: You can replace the comma ','
with your desired separator character and modify the representation of each individual element by modifying the expression str(x)
of the generator expression to something arbitrary complicated.
See here for something crazy that wouldn’t make any sense:
my_dict = {'name': 'Carl', 'age': 42, 'income': 100000} print(' | '.join('x' + str(x) + 'x' for x in my_dict.values())) # xCarlx | x42x | x100000x
Note that you could also use the repr()
function instead of the str()
function in this example—it wouldn’t matter too much.
Finally, I’d recommend you check out this tutorial to learn more how generator expressions work—many Python beginners struggle with this concept even though it’s ubiquitous in expert coders’ code bases. ๐
๐ Recommended Tutorial: Understanding One-Line Generators in Python
If you want to print the values without the dict_keys
string representation, feel free to check out our full guide on the Finxter blog.

While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.