Python String join()

The string join() method returns a string by joining all the elements of an iterable (list, string, tuple), separated by the given separator.

Example

text = ['Python', 'is', 'a', 'fun', 'programming', 'language']

# join elements of text with space print(' '.join(text))
# Output: Python is a fun programming language

Syntax of String join()

The syntax of the join() method is:

string.join(iterable)

join() Parameters

The join() method takes an iterable (objects capable of returning its members one at a time) as its parameter.

Some of the example of iterables are:

Note: The join() method provides a flexible way to create strings from iterable objects. It joins each element of an iterable (such as list, string, and tuple) by a string separator (the string on which the join() method is called) and returns the concatenated string.


Return Value from join()

The join() method returns a string created by joining the elements of an iterable by the given string separator.

If the iterable contains any non-string values, it raises the TypeError exception.


Example 1: Working of the join() method

# .join() with lists
numList = ['1', '2', '3', '4']
separator = ', '
print(separator.join(numList))
# .join() with tuples numTuple = ('1', '2', '3', '4')
print(separator.join(numTuple))
s1 = 'abc' s2 = '123' # each element of s2 is separated by s1 # '1'+ 'abc'+ '2'+ 'abc'+ '3'
print('s1.join(s2):', s1.join(s2))
# each element of s1 is separated by s2 # 'a'+ '123'+ 'b'+ '123'+ 'b'
print('s2.join(s1):', s2.join(s1))

Output

1, 2, 3, 4
1, 2, 3, 4
s1.join(s2): 1abc2abc3
s2.join(s1): a123b123c

Example 2: The join() method with sets

# .join() with sets
test = {'2', '1', '3'}
s = ', '
print(s.join(test))
test = {'Python', 'Java', 'Ruby'} s = '->->'
print(s.join(test))

Output

2, 3, 1
Python->->Ruby->->Java

Note: A set is an unordered collection of items, so you may get different output (order is random).


Example 3: The join() method with dictionaries

# .join() with dictionaries
test = {'mat': 1, 'that': 2}
s = '->'

# joins the keys only
print(s.join(test))
test = {1: 'mat', 2: 'that'} s = ', ' # this gives error since key isn't string
print(s.join(test))

Output

mat->that
Traceback (most recent call last):
  File "...", line 12, in <module>
TypeError: sequence item 0: expected str instance, int found

The join() method tries to join the keys (not values) of the dictionary with the string separator.

Note: If the key of the string is not a string, it raises the TypeError exception.


Also Read:

Did you find this article helpful?