Join the Keys or Values of Dictionary into String in Python

avatar
Borislav Hadzhiev

Last updated: Apr 8, 2024
4 min

banner

# Table of Contents

  1. Join the Values of a dictionary into a string in Python
  2. Join the Keys of a dictionary into a string in Python

# Join the Values of a dictionary into a string in Python

To join the values of a dictionary into a string:

  1. Call the str.join() method on a string separator.
  2. Call the values() method on the dict and pass the result to the join() method.
  3. The result will be a string containing the dictionary's values separated by the provided separator.
main.py
my_dict = {'a': 'one', 'b': 'two', 'c': 'three'} values = ' '.join(my_dict.values()) print(values) # ๐Ÿ‘‰๏ธ one two three keys = ' '.join(my_dict) print(keys) # ๐Ÿ‘‰๏ธ a b c items = ' '.join(f'{key} {value}' for key, value in my_dict.items()) print(items) # ๐Ÿ‘‰๏ธ a one b two c three

join values of dictionary into string

The code for this article is available on GitHub

The str.join() method takes an iterable as an argument and returns a string which is the concatenation of the strings in the iterable.

The string the join() method is called on is used as the separator between the elements.

main.py
my_dict = {'a': 'one', 'b': 'two', 'c': 'three'} values = ','.join(my_dict.values()) print(values) # ๐Ÿ‘‰๏ธ one,two,three

# Handling non-string values with map()

Note that the method raises a TypeError if there are any non-string values in the iterable.

You can use the map() function to convert each dictionary value to a string before passing them to the join() method.

main.py
my_dict = {'a': 1, 'b': 2, 'c': 3} values = ' '.join(map(str, my_dict.values())) print(values) # ๐Ÿ‘‰๏ธ 1 2 3

handling non string values with map

The code for this article is available on GitHub

The map() function takes a function and an iterable as arguments and calls the function with each item of the iterable.

The map() function passes each dictionary value to the str() class.

# Handling non-string values with a generator expression

Alternatively, you can use a generator expression.

main.py
my_dict = {'a': 1, 'b': 2, 'c': 3} values = ' '.join(str(val) for val in my_dict.values()) print(values) # ๐Ÿ‘‰๏ธ 1 2 3

handling non string values with generator expression

Generator expressions are used to perform some operation for every element or select a subset of elements that meet a condition.

The dict.values() method returns a new view of the dictionary's values.

main.py
my_dict = {'id': 1, 'name': 'Bobby'} print(my_dict.values()) # ๐Ÿ‘‰๏ธ dict_values([1, 'Bobby'])

The string the join() method is called on is used as the separator between the elements.

main.py
my_dict = {'a': 1, 'b': 2, 'c': 3} values = '-'.join(str(val) for val in my_dict.values()) print(values) # ๐Ÿ‘‰๏ธ 1-2-3

If you need to join the dictionary's values with spaces, call the method on a string that contains a space.

main.py
my_dict = {'a': 1, 'b': 2, 'c': 3} values = ' '.join(str(val) for val in my_dict.values()) print(values) # ๐Ÿ‘‰๏ธ '1 2 3'

Similarly, you can use a newline (\n) to join the values in the dict with a newline character.

main.py
my_dict = {'a': 1, 'b': 2, 'c': 3} values = '\n'.join(str(val) for val in my_dict.values()) # 1 # 2 # 3 print(values)

If you don't need a separator and just want to join the dictionary's values into a string, call the join() method on an empty string.

main.py
my_dict = {'a': 1, 'b': 2, 'c': 3} values = ''.join(str(val) for val in my_dict.values()) print(values) # ๐Ÿ‘‰๏ธ '123'

# Join the Keys of a dictionary into a string in Python

If you need to join the keys of a dictionary into a string:

  1. Call the str.join() method on a string separator.
  2. Pass the dictionary to the join() method.
  3. The result will be a string containing the dictionary's keys separated by the provided separator.
main.py
my_dict = {'name': 'Bobby', 'country': 'Belgium', 'job': 'accountant'} keys = ', '.join(my_dict) print(keys) # ๐Ÿ‘‰๏ธ 'name, country, job' values = ', '.join(my_dict.values()) print(values) # ๐Ÿ‘‰๏ธ Bobby, Belgium, accountant items = ', '.join(f'{key} {value}' for key, value in my_dict.items()) print(items) # ๐Ÿ‘‰๏ธ name Bobby, country Belgium, job accountant

join keys of dictionary into string

The code for this article is available on GitHub

The str.join() method takes an iterable as an argument and returns a string which is the concatenation of the strings in the iterable.

Note that the method raises a TypeError if there are any non-string values in the iterable.

If your dictionary contains integer keys (or other types), convert them to strings before calling join().

main.py
my_dict = {'name': 'Bobby', 'country': 'Belgium', 'job': 'accountant', 100: 200} keys = ', '.join(map(str, my_dict)) print(keys) # ๐Ÿ‘‰๏ธ 'name, country, job, 100' values = ', '.join(map(str, my_dict.values())) print(values) # ๐Ÿ‘‰๏ธ Bobby, Belgium, accountant, 200 items = ', '.join(f'{key} {value}' for key, value in my_dict.items()) print(items) # ๐Ÿ‘‰๏ธ name Bobby, country Belgium, job accountant, 100 200

The map() function takes a function and an iterable as arguments and calls the function with each item of the iterable.

We used the function to convert each key and value in the dictionary to a string, before passing them to the str.join() method.

The string the join() method is called on is used as the separator between the elements.

main.py
my_dict = {'name': 'Bobby', 'country': 'Belgium', 'job': 'accountant'} keys = '-'.join(my_dict) print(keys) # ๐Ÿ‘‰๏ธ 'name-country-job'

If you need to join the dictionary's keys with spaces, call the method on a string that contains a space.

main.py
my_dict = {'name': 'Bobby', 'country': 'Belgium', 'job': 'accountant'} keys = ' '.join(my_dict) print(keys) # ๐Ÿ‘‰๏ธ 'name country job'

Similarly, you can use a newline (\n) to join the keys in the dict with a newline character.

main.py
my_dict = {'name': 'Bobby', 'country': 'Belgium', 'job': 'accountant'} keys = '\n'.join(my_dict) # name # country # job print(keys)

If you don't need a separator and just want to join the dictionary's keys into a string, call the join() method on an empty string.

main.py
my_dict = {'name': 'Bobby', 'country': 'Belgium', 'job': 'accountant'} keys = ''.join(my_dict) print(keys) # ๐Ÿ‘‰๏ธ 'namecountryjob'
The code for this article is available on GitHub

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.

Copyright ยฉ 2024 Borislav Hadzhiev