Конкатенация строк – это их объединение в одну строку. В этой статье мы разберем 7 способов, с помощью которых можно объединять строки. Кроме того, вы узнаете, какие подходы хороши, а какие не очень.
Вот краткий обзор различных подходов:
- оператор +
- оператор +=
- метод
String.join()
- оператор форматирования %
- метод
String.format()
- f-строки
- размещение строк рядом друг с другом
То, какой метод конкатенации считать наилучшим, вопрос спорный. Чаще всего используется наиболее читабельный и интуитивно понятный способ. Это означает, что вам, вероятно, следует использовать f-строки или оператор +.
А теперь давайте рассмотрим каждый подход и разберем примеры.
1. Конкатенация строк при помощи оператора +
Самый простой способ объединения строк в Python – это использование оператора +. Традиционно оператор + используется для сложения чисел. Но в Python строки поддерживают этот оператор для конкатенации двух или более строк.
Примечание редакции. Об операторе + и других операторах можно почитать в статье “Операторы в Python”.
Например, давайте объединим четыре отдельные строки с помощью оператора +:
a = "This" b = "is" c = "a" d = "test" combo = a + b + c + d print(combo) # Результат: # Thisisatest
Чтобы добавить пробелы между строками, нужно внести их явно. Например, добавим пробелы между строками и объединим их:
a = "This" b = "is" c = "a" d = "test" combo = a + " " + b + " " + c + " " + d print(combo) # Результат: # This is a test
Только чтобы не добавлять кучу пробелов вручную, используйте цикл или другой подход для уменьшения списка.
2. Конкатенация строк при помощи оператора +=
Еще один простой способ объединения строк – использование оператора +=. Обратите внимание, что этот оператор изменяет исходную строку.
Объединять строки при помощи оператора += так же просто, как и при помощи оператора +. Этот способ прост, читабелен и интуитивно понятен. Например, давайте добавим три строки в конец исходной:
a = "This" b = "is" c = "a" d = "test" a += b a += c a += d print(a) # Результат: # Thisisatest
Чтобы добавить пробелы между строками, вносим их вручную перед добавлением нового слова. Например:
a = "This" b = "is" c = "a" d = "test" a += " " a += b a += " " a += c a += " " a += d print(a) # Результат: # This is a test
Очевидно, что если вам нужны пробелы, это не самый элегантный способ объединения строк. Другие подходы лучше справятся с этой задачей.
3. Конкатенация строк с использованием метода join()
В Python строки имеют встроенный метод join()
. Вы можете вызвать этот метод для строки и передать ему массив строк для объединения.
Метод join()
использует строку, для которой он вызван, в качестве строки-разделителя. Затем он объединяет список строк, переданных в качестве аргументов.
Например, объединим четыре строки, используя в качестве разделителя пробел:
a = "This" b = "is" c = "a" d = "test" combo = " ".join([a, b, c ,d]) print(combo) # Результат: # This is a test
4. Оператор форматирования строк %
Конкатенация строк в Python возможна и при помощи форматирования вывода.
В ранних версиях Python для форматирования строк применялся оператор %. Идея заключается в том, чтобы использовать %, за которым следует тип данных, в качестве плейсхолдера в строке. Например, для встраивания строк нужно поместить %s внутрь строки. Но, пожалуй, лучше показать это на примере.
Давайте объединим четыре строки с помощью оператора форматирования %:
a = "This" b = "is" c = "a" d = "test" combo = "%s %s %s %s" % (a, b, c, d) print(combo) # Результат: # This is a test
Обратите внимание, что использование оператора форматирования % больше не приветствуется. Есть новые, более удобные подходы.
5. Объединение строк при помощи метода format()
В Python для конкатенации строк можно использовать метод format()
. Подобно оператору %, метод format()
– это старый способ встраивания кода в строки.
Метод format()
работает следующим образом: вы помещаете пары фигурных скобок внутрь строки. Это плейсхолдеры. Затем вы вызываете format()
для строки и передаете ему ряд аргументов. Затем метод format()
вставляет аргументы в плейсхолдеры внутри строки, для которой он был вызван. Количество плейсхолдеров должно совпадать с количеством аргументов.
Одним из способов использования метода format()
является конкатенация строк. Например, объединим четыре строки:
a = "This" b = "is" c = "a" d = "test" combo = "{} {} {} {}".format(a, b, c, d) print(combo) # Результат: # This is a test
Метод format()
является оптимальным способом форматирования строк в старых версиях Python (между версиями 2.6 и 3.6). Но начиная с Python 3.6 был представлен новый, еще более доступный способ форматирования строк, называемый f-строками.
6. Конкатенация строк при помощи f-строк
F-строки – это новейший подход к форматированию строк в Python. С их помощью можно встраивать значения и код внутрь строки в удобном для чтения виде. Вы можете использовать F-строки для конкатенации строк.
F-строка – это строка, в которой перед кавычками стоит буква “f”. Это превращает вашу строку в f-строку и позволяет вставлять значения или код внутрь строки.
Обратите внимание, что для использования f-строк для форматирования необходим Python 3.6+.
Например, давайте вставим четыре строки в одну, чтобы объединить их в одну длинную строку:
a = "This" b = "is" c = "a" d = "test" combo = f"{a} {b} {c} {d}" print(combo) # Результат: # This is a test
7. Размещение строк рядом друг с другом
И, наконец, вы можете объединять строки, размещая их рядом друг с другом. Но это не очень удобно, потому что это можно делать только непосредственно со строками. Вы не можете сделать это, скажем, со строковыми переменными.
Вот пример:
combo = "This" "is" "a" "test" print(combo) # Результат: # Thisisatest
Но вообще конкатенация строк таким образом вряд ли имеет смысл. Проще записать их внутри одной пары кавычек.
Итоги
В этой статье мы разобрали, что такое конкатенация строк и как ее осуществить в Python.
Напомним, что в Python существует 7 различных способов объединения строк. Какой способ лучше, зависит от вашего случая использования. Если вы не занимаетесь оптимизацией производительности, выбирайте наиболее читабельный и понятный подход! А в плане читаемости оператор +, оператор += и f-строки являются отличными решениями для объединения строк.
Спасибо за внимание!
Перевод статьи Artturi Jalli «How to Concatenate Strings in Python (in 7 Ways)».
Пингбэк: Метод join(): объединение строк в Python - PythonTurbo
Пингбэк: Как соединить строку и число (str + int) в Python