Как Конкатенировать Строки в Python: Полное Руководство

В этом учебнике вы узнаете, как использовать Python для объединения строк. Умение работать со строками в Python — это важный навык в почти каждой программе, которую вы будете писать. В некоторых случаях вам захочется отобразить текст в вашей программе и обеспечить читабельность кода. В других случаях вы захотите стремиться к скорости вашей программы, и ваш метод объединения строк будет другим. Аналогично, если ваш код требует обратной совместимости, вам захочется использовать один метод вместо другого.

К концу этого учебника вы узнаете:

  • Различные способы объединения строк в Python

  • Как обеспечить обратную совместимость при объединении строк в Python

  • Какой метод объединения строк является наиболее читабельным в Python

Содержание

Методы объединения строк в Python: сравнение

Таблица ниже рассматривает различные методы объединения строк в Python. Каждый из методов рассматривается более подробно в разделах ниже, а также некоторые методы, которые не вошли в список!

Объединение строк в Python с использованием оператора +

Один из самых простых и распространенных методов объединения строк в Python — использование оператора +. Это работает так: оператор + объединяет две строки. В случае строк оператор + действует как оператор конкатенации.

Давайте посмотрим на пример:

# Использование + для объединения строк в Python
print('Добро пожаловать в ' + 'bemind.gitbook.io')

# Возвращает:
# Добро пожаловать в bemind.gitbook.io

Этот метод также работает со строками, присвоенными переменным. Давайте посмотрим, как это выглядит:

# Использование + для объединения строк в Python
first = 'Добро пожаловать в '
second = 'bemind.gitbook.io'

print(first + second)

# Возвращает:
# Добро пожаловать в bemind.gitbook.io

Важно отметить, что это работает только со строками. Если мы попытаемся объединить строку и целое число, например, будет выдана ошибка:

# Попытка объединить строку и целое число
print('Hello!' + 3)

# Вызывает:
# TypeError: can only concatenate str (not "int") to str

Как показано в этом учебнике, сначала нужно преобразовать целое число в строку.

В следующем разделе вы узнаете, как использовать оператор присваивания с добавлением для легкого добавления строки к другой строке.

Объединение строк в Python с использованием оператора +=

В предыдущем разделе вы узнали, как объединять строки с использованием оператора +. Аналогично, вы можете использовать оператор присваивания с добавлением, +=, для объединения строк. На самом деле, этот оператор отлично подходит для добавления одной строки к другой.

В этом случае важно отметить, что вы добавляете строку к той же переменной, а не создаете новую.

# Использование += для объединения строк в Python
sentence = 'Добро пожаловать в '
second = 'bemind.gitbook.io'

sentence += second
print(sentence)

# Возвращает:
# Добро пожаловать в bemind.gitbook.io

Имейте в виду, что хотя кажется, что строка добавляется в конец другой, на самом деле это не так. Поскольку строки в Python неизменяемы, исходная строка фактически уничтожается, и объединенные строки создаются заново.

Объединение строк в Python с использованием f-строк

Python f-строки, или форматированные строковые литералы, позволяют писать четкую строковую интерполяцию. Python f-строки были впервые представлены в Python 3.6, поэтому они не являются самым совместимым с предыдущими версиями кодом для объединения строк в Python.

Python f-строки начинаются с буквы f и позволяют помещать переменные для интерполяции в фигурные скобки. Переменные оцениваются во время выполнения, и их строковое представление помещается в строку.

Это лучше всего объяснить на примере, который мы можем рассмотреть ниже:

# Использование Python f-строк для объединения строк
website = 'bemind.gitbook.io'
print(f'Добро пожаловать в {website}!')

# Возвращает:
# Добро пожаловать в bemind.gitbook.io!

Отличная особенность этого метода — его читабельность. Нет необходимости гадать, как будет выглядеть ваша окончательная строка.

Объединение строк в Python с использованием оператора *

Еще один отличный способ объединения строк — использование оператора *. Как следует из названия, вы умножаете строку определенное количество раз. Это позволяет объединить строку с самой собой заданное количество раз.

Давайте посмотрим, как это выглядит:

# Умножение строки
word = 'hello'

print(word * 3)

# Возвращает:
# hellohellohello

В приведенном выше коде мы вывели строку 'hello' три раза.

Объединение строковых литералов в Python с использованием метода join

Метод join принимает список различных строк и, как следует из названия, объединяет строки вместе. Метод сам по себе применяется к другой строке, которая используется для объединения строк. Это может звучать запутанно, но давайте посмотрим на пример, который объяснит это лучше:

# Объединение строк с .join()
words = ['welcome', 'to', 'bemind.gitbook.io']

joined = ' '.join(words)
print(joined)

# Возвращает:
# welcome to bemind.gitbook.io

В приведенном выше примере мы применяем метод .join() к строке, которую хотим использовать для объединения элементов. Поэтому строка, к которой мы применяем метод, является разделителем, который мы хотим использовать.

Объединение строк в Python с использованием метода format

В более старых версиях Python фигурные скобки (аналогично f-строкам) также позволяли объединять строки. Однако, в отличие от Python f-строк, этот метод не такой читабельный. Давайте посмотрим, как это работает, на примере:

# Использование format для объединения строк
word1 = 'Hey'
word2 = 'there'

words = '{} {}!'.format(word1, word2)

print(words)

# Возвращает:
# Hey there!

Этот метод использует фигурные скобки для указания, где должны быть вставлены различные переменные. Причина, по которой этот метод не такой читабельный, заключается в том, что он использует позицию для указания, какая переменная должна быть вставлена куда.

Объединение строк в Python с использованием форматирования %

Аналогично методу format, вы можете использовать оператор % в строках для объединения строк. Этот метод позволяет вставлять переменные в строки, хотя и менее читабельно.

Давайте посмотрим на пример:

# Использование % для объединения строк
word1 = 'Hey'
word2 = 'there'

words = '%s %s!' % (word1, word2)

print(words)

# Возвращает:
# Hey there!

Лично я считаю этот метод наименее читабельным из доступных методов.

Объединение строк в Python с использованием строковых литералов

Этот последний метод объединения строк в Python — использование строковых литералов последовательно. Размещая одну строку после другой, Python неявно объединяет эти строки.

Давайте посмотрим на пример, как это работает:

# Объединение строк с помощью строковых литералов
joined = "hey " "there"

print(joined)

# Возвращает:
# hey there

Заключение

В этом учебнике вы узнали, как объединять строки в Python. Вы рассмотрели 8 различных методов объединения строк, узнали, какие из них наиболее читабельны, быстры и совместимы с предыдущими версиями. Поскольку существует так много различных способов, иногда может быть трудно выбрать. Однако знание, какие методы использовать в зависимости от ситуации, может быть важным соображением!

Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь с учебниками ниже:

  • Python: Сортировка строки (4 разных способа)

  • Python: Удаление специальных символов из строки

  • Python: Удаление знаков препинания из строки (3 разных способа!)

  • Python zfill & rjust: Добавление символов в строку Python

Last updated