Объединить строку в питоне

Конкатенация строк в Python

Конкатенация строк – это их объединение в одну строку. В этой статье мы разберем 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"   " print(combo) # Результат: # This is a test

7. Размещение строк рядом друг с другом

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

combo = "This" "is" "a" "test" print(combo) # Результат: # Thisisatest

Но вообще конкатенация строк таким образом вряд ли имеет смысл. Проще записать их внутри одной пары кавычек.

Итоги

В этой статье мы разобрали, что такое конкатенация строк и как ее осуществить в Python.

Напомним, что в Python существует 7 различных способов объединения строк. Какой способ лучше, зависит от вашего случая использования. Если вы не занимаетесь оптимизацией производительности, выбирайте наиболее читабельный и понятный подход! А в плане читаемости оператор +, оператор += и f-строки являются отличными решениями для объединения строк.

2 комментария к “Конкатенация строк в Python”

Источник

Конкатенация строк в Python

Объединение строк – очень распространенная операция в программировании. Объединение строк в Python может быть выполнено различными способами.

Мы можем выполнить конкатенацию строк следующими способами:

  • использование оператора+;
  • использование метода join();
  • использование оператора%;
  • использование функции format();
  • Использование f-строки (интерполяция буквальной строки).

Конкатенация строк с использованием оператора +

Это самый простой способ конкатенации строк. Давайте посмотрим на простой пример.

s1 = 'Apple' s2 = 'Pie' s3 = 'Sauce' s4 = s1 + s2 + s3 print(s4)

Давайте посмотрим на другой пример, где мы получим две строки из пользовательского ввода и объединим их.

s1 = input('Please enter the first string:\n') s2 = input('Please enter the second string:\n') print('Concatenated String =', s1 + s2)
Please enter the first string: Hello Please enter the second string: World Concatenated String = HelloWorld

Конкатенация строк в Python

Очень просто использовать оператор + для конкатенации строк. Однако аргументы должны быть строкой.

>>>'Hello' + 4 Traceback (most recent call last): File "", line 1, in TypeError: can only concatenate str (not "int") to str

Мы можем использовать функцию str(), чтобы получить строковое представление объекта.

Давайте посмотрим, как связать строку с целым числом или другим объектом.

print('Hello' + str(4)) class Data: def __init__(self, i): self.id = i def __str__(self): return 'Data[' + str(self.id) + ']' print('Hello ' + str(Data(10)))

Самая большая проблема с оператором + заключается в том, что мы не можем добавить разделитель или разделитель между строками. Например, если нам нужно объединить «Hello» и «World» с разделителем пробелов, нам нужно будет записать его как «Hello» + «» + «World».

Конкатенация строк в Python с использованием функции join()

Мы можем использовать функцию join() для объединения строки с разделителем. Это полезно, когда у нас есть последовательность строк, например список или кортеж строк.

Если вам не нужен разделитель, используйте функцию join() с пустой строкой.

s1 = 'Hello' s2 = 'World' print('Concatenated String using join() =', "".join([s1, s2])) print('Concatenated String using join() and whitespaces =', " ".join([s1, s2]))
Concatenated String using join() = HelloWorld Concatenated String using join() and spaces = Hello World

Конкатенация с использованием оператора%

Мы можем использовать оператор% для форматирования строк, он также может использоваться для конкатенации строк. Это полезно, когда мы хотим объединить строки и выполнить простое форматирование.

s1 = 'Hello' s2 = 'World' s3 = "%s %s" % (s1, s2) print('String Concatenation using % Operator =', s3) s3 = "%s %s from JournalDev - %d" % (s1, s2, 2018) print('String Concatenation using % Operator with Formatting =', s3)
String Concatenation using % Operator = Hello World String Concatenation using % Operator with Formatting = Hello World from JournalDev - 2018

С использованием функции format()

Мы также можем использовать функцию string format() для объединения и форматирования строк.

s1 = 'Hello' s2 = 'World' s3 = "<>-<>".format(s1, s2) print('String Concatenation using format() =', s3) s3 = " ".format(in1=s1, in2=s2) print('String Concatenation using format() =', s3)
String Concatenation using format() = Hello-World String Concatenation using format() = Hello World

Функция format() очень мощная, использование ее только для конкатенации строк – неправильное использование.

С использованием f-строки

Если вы используете Python 3.6+, вы также можете использовать f-строку для конкатенации строк. Это новый способ форматирования строк, представленный в PEP 498 – Literal String Interpolation.

s1 = 'Hello' s2 = 'World' s3 = f' ' print('String Concatenation using f-string =', s3) name = 'Pankaj' age = 34 d = Data(10) print(f' age is and d=')
String Concatenation using f-string = Hello World Pankaj age is 34 and d=Data[10]

F-строка в Python проще в написании по сравнению с функцией format(). Он также вызывает функцию str(), когда аргумент объекта используется в качестве замены поля.

Заключение

Форматирование строки Python можно выполнить несколькими способами. Используйте их в соответствии с вашими требованиями. Если вам нужно объединить последовательность строк с разделителями, используйте функцию join().

Если при конкатенации также требуется некоторое форматирование, используйте функцию format() или f-строку. Обратите внимание, что f-строку можно использовать с версиями Python 3.6 и выше.

Источник

Читайте также:  Где лежит питон windows
Оцените статью