Concatenates the elements in an iterable.
Minimal Example
>>> '-'.join(['the', 'answer', 'is', '42']) 'the-answer-is-42'
As you read over the explanations below, feel free to watch our video guide about this particular string method:
Syntax and Explanation
str.join(iterable)
Concatenates the elements in an iterable
. The result is a string whereas each elements in the iterable are “glued together” using the string on which it is called as a delimiter.
To join all elements in an iterable without a delimiter, call ''.join()
on the empty string:
>>> ''.join(['1', '2', '3']) '123'
Here’s the same example with some non-empty delimiters:
>>> ''.join(['1', '2', '3']) '123' >>> '-'.join(['1', '2', '3']) '1-2-3' >>> '--'.join(['1', '2', '3']) '1--2--3' >>> ' + 1 + '.join(['1', '2', '3']) '1 + 1 + 2 + 1 + 3'
If there are non-string values in the iterable, Python raises a TypeError
:
>>> ''.join([1, 2, 3]) Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> ''.join([1, 2, 3]) TypeError: sequence item 0: expected str instance, int found
To fix the TypeError
due to non-string elements in the iterable, convert each element to a string first using list comprehension ''.join([str(x) for x in iterable])
and the built-in str()
function before joining the elements.
Here’s an example:
>>> numbers = [1, 2, 3] >>> ''.join([str(x) for x in numbers]) '123'
More String Methods
Python’s string class comes with a number of useful additional string methods. Here’s a short collection of all Python string methods—each link opens a short tutorial in a new tab.
Method | Description |
---|---|
capitalize() | Return a copy of the string with capitalized first character and lowercased remaining characters. |
casefold() | Return a lowercased, casefolded string similar to lowercase() but more aggressive. |
center() | Return a centered string of a certain length, padded with whitespace or custom characters. |
count() | Return the number of non-overlapping occurrences of a substring. |
encode() | Returns a byte object that is an encoded version of the string. |
endswith() | Returns whether the string ends with a given value or not (True or False ). |
expandtabs() | Return a string with spaces instead of tab characters. |
find() | Returns the index of the first occurrence of the specified substring. |
format() | Formats the string according to the Format Description Language. |
format_map() | Formats the string according to the Format Description Language, passing a mapping object. |
index() | Returns the index of the first occurrence of the specified substring, like find() but it raises a ValueError if the substring is not found. |
isalnum() | Checks whether all characters are alphabetic or numeric (True or False ). |
isalpha() | Checks whether all characters are alphabetic (True or False ). |
isascii() | Checks whether all characters are ASCII (True or False ). |
isdecimal() | Checks whether all characters are decimal numbers (True or False ). |
isdigit() | Checks whether all characters are digits, i.e., numbers from 0 to 9 (True or False ). |
isidentifier() | Checks whether all characters are identifiers that can be used as names of functions, classes, or variables (True or False ). |
islower() | Checks whether all characters are lowercase (True or False ). |
isnumeric() | Checks whether all characters are numeric values (True or False ). |
isprintable() | Checks whether all characters are printable (True or False ). |
isspace() | Checks whether all characters are whitespaces (True or False ). |
istitle() | Checks if the string is title-cased (True or False ). |
isupper() | Checks whether all characters are uppercase (True or False ). |
join() | Concatenates the elements in an iterable. |
ljust() | Returns a left-justified string filling up the right-hand side with fill characters. |
lower() | Returns a lowercase string version. |
lstrip() | Trims whitespaces on the left and returns a new string. |
maketrans() | Returns a translation table. |
partition() | Searches for a separator substring and returns a tuple with three strings: (1) everything before the separator, (2) the separator itself, and (3) everything after it. |
removeprefix() | Return string[len(prefix):] if the string starts with prefix , and string[:] otherwise. |
removesuffix() | Return string[:- if the string starts with suffix , and string[:] otherwise. |
replace() | Returns a string with replaced values. |
rfind() | Return the highest index in the string where a substring is found. Returns -1 if not found. |
rindex() | Return the highest index in the string where a substring is found. Returns ValueError if not found. |
rjust() | Returns a right-justified string filling up the left-hand side with fill characters. |
rpartition() | Searches for a separator substring and returns a tuple with three strings: (1) everything before the separator, (2) the separator itself, and (3) everything after it. |
rsplit() | Splits the string at a given separator and returns a split list of substrings. |
rstrip() | Trims whitespaces on the right and returns a new string. |
split() | Splits the string at a given separator and returns a split list of substrings. |
splitlines() | Splits the string at line breaks such as '\n' and returns a split list of substrings (i.e., lines). |
startswith() | Returns whether the string starts with a given value or not (True or False ). |
strip() | Trims whitespaces on the left and right and returns a new string. |
swapcase() | Swaps lowercase to uppercase characters and vice versa. |
title() | Returns a new string with uppercase first characters of each word. |
translate() | Returns a translated string. |
upper() | Returns a lowercase string version. |
zfill() | Fills the string from the left with "0" characters. |