- Python String join() Method
- Syntax
- Return Value
- Basic Examples
- join() on Iterable of Size 1
- Join a List of Integers
- join() on Dictionary
- join() vs Concatenation operator +
- Python: Concatenate a String and Int (Integer)
- Concatenate a String and an Int in Python with +
- Concatenate a String and an Int in Python with f-strings
- Concatenate a String and an Int in Python with format
- Concatenate a String and an Int in Python with %
- Conclusion
- Related Tutorials
- How To Concatenate String and Int in Python
- Example
- Prerequisites
- Using the str() Function
- Using the % Interpolation Operator
- Using the str.format() function
- Using f-strings
- Conclusion
Python String join() Method
The join() method joins all items in an iterable into a single string. Call this method on a string you want to use as a delimiter like comma, space etc.
If there are any non-string values in iterable, a TypeError will be raised.
Syntax
Parameter | Condition | Description |
iterable | Required | Any iterable (like list, tuple, dictionary etc.) whose items are strings |
Return Value
The method returns the string obtained by concatenating the items of an iterable .
Basic Examples
# Join all items in a list with comma L = ['red', 'green', 'blue'] x = ','.join(L) print(x) # Prints red,green,blue
# Join list items with space L = ['The', 'World', 'is', 'Beautiful'] x = ' '.join(L) print(x) # Prints The World is Beautiful
# Join list items with newline L = ['First Line', 'Second Line'] x = '\n'.join(L) print(x) # First Line # Second Line
A delimiter can contain multiple characters.
L = ['the beginning', 'the end', 'the beginning'] x = ' is '.join(L) print(x) # Prints the beginning is the end is the beginning
join() on Iterable of Size 1
join() method is smart enough to insert the delimiter in between the strings rather than just adding at the end of every string. So, if you pass an iterable of size 1, you won’t see the delimiter.
L = ['red'] x = ','.join(L) print(x) # Prints red
Join a List of Integers
If there are any non-string values in iterable , a TypeError will be raised.
L = [1, 2, 3, 4, 5, 6] x = ','.join(L) print(x) # Triggers TypeError: sequence item 0: expected string, int found
To avoid such exception, you need to convert each item in a list to string. The list comprehension makes this especially convenient.
L = [1, 2, 3, 4, 5, 6] x = ','.join(str(val) for val in L) print(x) # Prints 1,2,3,4,5,6
join() on Dictionary
When you use a dictionary as an iterable , all dictionary keys are joined by default.
L = 'name':'Bob', 'city':'seattle'> x = ','.join(L) print(x) # Prints city,name
To join all values, call values() method on dictionary and pass it as an iterable .
L = 'name':'Bob', 'city':'seattle'> x = ','.join(L.values()) print(x) # Prints seattle,Bob
To join all keys and values, use join() method with list comprehension.
L = 'name':'Bob', 'city':'seattle'> x = ','.join('='.join((key,val)) for (key,val) in L.items()) print(x) # Prints city=seattle,name=Bob
join() vs Concatenation operator +
Concatenation operator + is perfectly fine solution to join two strings. But if you need to join more strings, it is convenient to use join() method.
# concatenation operator x = 'aaa' + 'bbb' print(x) # Prints aaabbb # join() method x = ''.join(['aaa','bbb']) print(x) # Prints aaabbb
Python: Concatenate a String and Int (Integer)
In this tutorial, you’ll learn how to use Python to concatenate a string and an int (integer). Normally, string concatenation is done in Python using the + operator. However, when working with integers, the + represents addition. Because of this, Python will raise an error, a TypeError to be exact, when the program is run.
By the end of reading this tutorial, you’ll have learned how to use Python to concatenate a string and an int using a number of methods. You’ll have learned how to use the str() function, the .format() method, % format specifier, and – my personal favourite – Python f-strings.
The Quick Answer: Use f-strings or str() to Concatenate Strings and Ints in Python
Concatenate a String and an Int in Python with +
In many programming languages, concatenating a string and an integer using the + operator will work seamlessly. The language will handle the conversion of the integer into a string and the program will run fine. In Python, however, this is not the case. Due to the dynamic typing nature of Python, the language cannot determine if we want to convert the string to an integer and add the values, or concatenate a string and an int. Because of this, the program will encounter a TypeError .
Let’s see what this looks like when we simply try to concatenate a string and an integer in Python using the + operator:
# Trying to Concatenate a String and an Int in Python word = 'datagy' integer = 2022 new_word = word + integer # Returns: TypeError: can only concatenate str (not "int") to str
The TypeError that’s raised specifically tells us that a string and an integer cannot be concatenated. Because of this, we first need to convert our integer into a string. We can do this using the string() function, which will take an input and convert it into a string, if possible.
Let’s try running our running program again, but this time converting the int into a string first:
# Concatenating a String and an Int in Python with + word = 'datagy' integer = 2022 new_word = word + str(integer) print(new_word) # Returns: datagy2022
We can see that by first converting the integer into a string using the string() function, that we were able to successfully concatenate the string and integer.
In the next section, you’ll learn how to use Python f-strings to combine a string and an integer.
Concatenate a String and an Int in Python with f-strings
Python f-strings were introduced in version 3.6 of Python and introduced a much more modern way to interpolate strings and expressions in strings. F-strings in Python are created by prepending the letter f or F in front of the opening quotes of a string. Doing so allows you to include expressions or variables inside of curly braces that are evaluated and converted to strings at runtime.
Because of the nature of f-strings evaluating expressions into strings, we can use them to easily concatenate strings and integers. Let’s take a look at what this looks like:
# Concatenating a String and an Int in Python with f-strings word = 'datagy' integer = 2022 new_word = f'' print(new_word) # Returns: datagy2022
One of the great things about f-strings in Python is how much more readable they are. They provide us with a way to make it immediately clear which variables are being joined and how they’re being joined. We don’t need to wonder about why we’re converting an integer into a string, but just know that it’ll happen.
In the next section, you’ll learn how to use the .format() method to combine a string and an integer in Python.
Concatenate a String and an Int in Python with format
The Python .format() method works similar to f-strings in that it uses curly braces to insert variables into strings. It’s available in versions as far back as Python 2.7, so if you’re working with older version this is an approach you can use.
Similar to Python f-strings, we don’t need to worry about first converting our integer into a string to concatenate it. We can simply pass in the value or the variable that’s holding the integer.
Let’s see what this looks like:
# Concatenating a String and an Int in Python with .format word = 'datagy' integer = 2022 new_word = '<><>'.format(word, integer) print(new_word) # Returns: datagy2022
We can see here that this approach returns the desired result. While this approach works just as well as the others, the string .format() method can be a little difficult to read. This is because the values placed into the placeholders are not immediately visible.
In the next section, you’ll learn how to concatenate a string an int in Python using the % operator.
Concatenate a String and an Int in Python with %
In this final section, you’ll learn how to use % operator to concatenate a string and an int in Python. The % operator represents an older style of string interpolation in Python. We place a %s into our strings as placeholders for different values, similar to including the curly braces in the example above.
Let’s see how we can combine a string and an integer in Python:
# Concatenating a String and an Int in Python with % word = 'datagy' integer = 2022 new_word = '%s%s' % (word, integer) print(new_word) # Returns: datagy2022
We can see that this returns the same, expected result. This approach, however, is the least readable of the four approaches covered here. It’s included here more for completeness, rather than as a suggested approach.
Conclusion
In this tutorial, you learned how to use Python to concatenate a string and an int. You learned why this is not as intuitive as in other languages, as well as four different ways to accomplish this. You learned how to use the + operator with the string() function, how to use Python f-strings, and how to use the .format() method and the % operator for string interpolation.
To learn more about the Python string() function, check out the official documentation here.
Related Tutorials
Check out some of these related tutorials:
How To Concatenate String and Int in Python
Python supports string concatenation using the + operator. In most other programming languages, if we concatenate a string with an integer (or any other primitive data types), the language takes care of converting them to a string and then concatenates it.
However, in Python, if you try to concatenate a string with an integer using the + operator, you will get a runtime error.
Example
Let’s look at an example for concatenating a string ( str ) and an integer ( int ) using the + operator.
current_year_message = 'Year is ' current_year = 2018 print(current_year_message + current_year)
The desired output is the string: Year is 2018 . However, when we run this code we get the following runtime error:
Traceback (most recent call last): File "/Users/sammy/Documents/github/journaldev/Python-3/basic_examples/strings/string_concat_int.py", line 5, in print(current_year_message + current_year) TypeError: can only concatenate str (not "int") to str
So how do you concatenate str and int in Python? There are various other ways to perform this operation.
Prerequisites
In order to complete this tutorial, you will need:
This tutorial was tested with Python 3.9.6.
Using the str() Function
We can pass an int to the str() function it will be converted to a str :
print(current_year_message + str(current_year))
The current_year integer is returned as a string: Year is 2018 .
Using the % Interpolation Operator
We can pass values to a conversion specification with printf-style String Formatting:
print("%s%s" % (current_year_message, current_year))
The current_year integer is interpolated to a string: Year is 2018 .
Using the str.format() function
We can also use the str.format() function for concatenation of string and integer.
print("<><>".format(current_year_message, current_year))
The current_year integer is type coerced to a string: Year is 2018 .
Using f-strings
If you are using Python 3.6 or higher versions, you can use f-strings, too.
print(f'current_year_message>current_year>')
The current_year integer is interpolated to a string: Year is 2018 .
Conclusion
You can check out the complete Python script and more Python examples from our GitHub repository.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.