- Как объединить массивы в Python (с примерами)
- Пример 1: объединение двух массивов
- Пример 2. Объединение более двух массивов
- Дополнительные ресурсы
- Как работает конкатенация строк в Python 3? Примеры.
- Конкатенация строк в Python
- Конкатенация строк с помощью оператора ‘+’
- Конкатенация строк используя функцию join().
- Конкатенация строк используя оператор %
- Конкатенация строк с помощью функции format()
- Конкатенация с использованием f-строк
- Заключение
- Конкатенация строк в Python
- 1. Конкатенация строк при помощи оператора +
- 2. Конкатенация строк при помощи оператора +=
- 3. Конкатенация строк с использованием метода join()
- 4. Оператор форматирования строк %
- 5. Объединение строк при помощи метода format()
- 6. Конкатенация строк при помощи f-строк
- 7. Размещение строк рядом друг с другом
- Итоги
- 2 комментария к “Конкатенация строк в Python”
Как объединить массивы в Python (с примерами)
Самый простой способ объединить массивы в Python — использовать функцию numpy.concatenate , которая использует следующий синтаксис:
numpy.concatenate ((a1, a2, ….), ось = 0)
- a1, a2…: последовательность массивов
- ось: ось, вдоль которой будут соединяться массивы. По умолчанию 0.
В этом руководстве представлено несколько примеров использования этой функции на практике.
Пример 1: объединение двух массивов
В следующем коде показано, как объединить два одномерных массива:
import numpy as np #create two arrays arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([6, 7, 8]) #concatentate the two arrays np.concatenate ((arr1, arr2)) [1, 2, 3, 4, 5, 6, 7, 8]
В следующем коде показано, как объединить два двумерных массива:
import numpy as np #create two arrays arr1 = np.array([[3, 5], [9, 9], [12, 15]]) arr2 = np.array([[4, 0]]) #concatentate the two arrays np.concatenate ((arr1, arr2), axis= 0 ) array([[3, 5], [9, 9], [12, 15], [4, 0]]) #concatentate the two arrays and flatten the result np.concatenate ((arr1, arr2), axis= None ) array([3, 5, 9, 9, 12, 15, 4, 0])
Пример 2. Объединение более двух массивов
Мы можем использовать аналогичный код для объединения более двух массивов:
import numpy as np #create four arrays arr1 = np.array([[3, 5], [9, 9], [12, 15]]) arr2 = np.array([[4, 0]]) arr3 = np.array([[1, 1]]) arr4 = np.array([[8, 8]]) #concatentate all the arrays np.concatenate ((arr1, arr2, arr3, arr4), axis= 0 ) array([[3, 5], [9, 9], [12, 15], [4, 0], [1, 1], [8, 8]]) #concatentate all the arrays and flatten the result np.concatenate ((arr1, arr2, arr3, arr4), axis= None ) array([3, 5, 9, 9, 12, 15, 4, 0, 1, 1, 8, 8])
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять аналогичные операции в NumPy:
Как работает конкатенация строк в Python 3? Примеры.
Конкатенация строк — самая распространенная операция в программировании на Python. Есть несколько варинатов как сложить две строки.
Конкатенация строк в Python
Варианты обьединения строк:
- + operator
- метод join()
- % оператор
- функция format()
- f-string (форматированные строковые литералы)
Конкатенация строк с помощью оператора ‘+’
Это самый простой способ. Давайте рассмотрим на примере:
s1 = 'Apple' s2 = 'Pie' s3 = 'Sauce' s4 = s1 + s2 + s3 print(s4)
Результат: «Pythonist.ru нужен Питонисту»
Давайте рассмотрим другой пример, где мы получаем 2 строки от пользователя и потом конкатенируем их.
s1 = input('Введите первую строку :\n') Введите первую строку : pythonist.ru s2 = input('Введите вторую строку:\n') Введите вторую строку: сайт для программистов print('Конкатенированная строка =', s1 + s2)
>>> s1 = input('Введите первую строку :\n') Введите первую строку : pythonist.ru >>> s2 = input('Введите вторую строку:\n') Введите вторую строку: сайт для программистов >>> print('Конкатенированная строка =', s1 + s2)
Результат: Конкатенированная строка = pythonist.ru сайт для программистов
Очень удобный способ использование оператора «+». Единственный момент, который надо учитывать это то, что обе вводные должны быть строками.
>>>'Hello' + 4 Traceback (most recent call last): File "", line 1, in TypeError: can only concatenate str (not "int") to str
Мы можем использовать str() function для представленя объекта в виде строки.
Давайте посмотрим как конкатенировать строку и число или другой объект.
print('Питонист' + str(4)) class Data: def __init__(self, i): self.id = i def __str__(self): return 'Номер[' + str(self.id) + ']' print('Питонист ' + str(Data(10)))
Основная проблема оператора «+» в том, что используя его мы не можем добавить разделитель между строками. Например если мы хотим сконкатенировать строки “Hello” и “World” и поставить между ними пробел, то нам надо писать так «Hello» + » » + «World»
Конкатенация строк используя функцию join().
Мы можем использовать функцию join() для конкатенации строк и одновременного добавления разделителя между ними. Это полезная функция, когда мы имеем последовательность строк, например List или tuple строк.
Если вам не нужен разделитель, то можно использовать 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()
Можно использовать функцию строк 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-строк
Если вы используете Python3.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]
Python f-строки более чистый и легкий способ по сравнению с format()
Заключение
Форматирование строк в Python может быть сделано разными способами. Используйте один из них, в зависимости, что вам нужно сделать со строками. Если надо сконкатенировать и добавить разделитель, тогда используйте Join(). Если надо еще и отформатировать, тогда format() или f-строки. Учитывайте что f-строки можно использовать с версии Python3.6 или выше.
Конкатенация строк в 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-строки являются отличными решениями для объединения строк.