How to convert a Python set to a string

Sometimes, you may need to convert a set object to a string object in Python.

By default, Python allows you to convert a set object to a string using the str() function as follows:

my_set = {"A", "S", "D"}

my_str = str(my_set)

print(my_str)

But the result will be a string with curly brackets as shown below:

{'S', 'D', 'A'}

Most likely, you want to improve the conversion and remove the curly brackets, the extra quotation mark, and the commas.

There are two methods you can use to better convert a set to a string in Python:

  1. Using the str.join() method
  2. Using a for loop

In this tutorial, I will show you how to use both methods in practice.

Convert set to string with the str.join() method

Since a set is an iterable object, you can use the str.join() method to join the items in the set as a string.

You can call the join() method from an empty string as follows:

my_set = {"A", "S", "D"}

my_str = "".join(my_set)

print(my_str)

Output:

ASD

If you want to add some character between the elements, you can specify the character in the string from which you call the join() method:

my_set = {"A", "S", "D"}

my_str = "-".join(my_set)

print(my_str) 

Output:

A-S-D

Keep in mind that a set is an unordered data structure, so the insertion order is not preserved. This is why the string has a different order than the set you defined.

One weakness of this method is that if you have a set of mixed types, then the join() method will raise an error.

Suppose you have a mixed set as shown below:

my_set = {"A", 1, 2, True, "B"}

my_str = "".join(my_set)

print(my_str)

Output:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    my_str = "".join(my_set)
             ^^^^^^^^^^^^^^^
TypeError: sequence item 0: expected str instance, int found

See how the join() method expected a str instance, but int is found instead.

To overcome this limitation, you need to use a for loop as explained below.

2. Using a for loop

To convert a set to a string, you can also use a for loop to iterate over the set and assign each value to a string. Here’s an example:

my_set = {"A", 1, 2.4, "B"}

my_str = ""

for item in my_set:
    my_str = my_str + str(item)

print(my_str)

Output:

B2.4A1

One benefit of using this method is that you can convert a set of mixed types to a string by calling the str() function on each item.

This way, you can convert a set of strings, integers, or floats just fine.

Conclusion

Now you’ve learned how to convert a set to a string in Python. Happy coding! 👍

Take your skills to the next level ⚡️

I'm sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I'll send new stuff straight into your inbox!

No spam. Unsubscribe anytime.