В этой статье мы рассмотрим, как объединить в одну строку строковые элементы списка, кортежа, словаря, множества, а также символы строки. В Python это делается при помощи строкового метода join().
БЕСПЛАТНО СКАЧАТЬ КНИГИ по Python на русском языке можно у нас в телеграм канале "Python книги на русском"
Примечание. О конкатенации строк при выводе можно почитать в статье “Как конкатенировать строки в Python”.
Чтобы было понятно, о чем пойдет речь, давайте сразу для примера объединим список строк в одну строку. Для этого:
- Укажите строку-разделитель
- Вызовите метод
join()
для строки-разделителя и передайте ему список
Например, соединим список слов через дефис:
words = ["This", "is", "a", "test"] joined = "-".join(words) print(joined)
Вывод:
This-is-a-test
Пожалуй, самый распространенный вопрос – как объединить строки в одну строку, разделив их пробелом.
Для этого:
- Укажите пробел в качестве строки-разделителя
- Вызовите метод
join()
для разделителя и передайте ему список строк
Вот как это выглядит в коде:
words = ["This", "is", "a", "test"] joined = " ".join(words) print(joined)
Вывод:
This is a test
А теперь давайте поближе познакомимся с методом join() и разберем, как объединять строковые элементы в кортежах, словарях и множествах.
Метод join() в Python
В Python есть встроенный метод join()
, который можно вызвать для любой строки. Метод join()
рассматривает строку, для которой он вызван, как значение разделителя для объединения строк из переданного ему итерируемого объекта.
Синтаксис:
string.join(iterable)
Единственный параметр метода join()
– итерируемый объект. Это может быть список, кортеж, строка, словарь или множество. Единственное ограничение – элементы этого объекта должны быть строками. В противном случае объединение их в одну длинную строку не удастся.
Что касается результата, метод join()
возвращает одну строку, в которой объединены строковые значения из итерируемого объекта. Например, при помощи метода join()
можно объединить элементы списка в одну строку.
Допустим, у нас есть список чисел в строковом формате. Давайте объединим их и разделим буквой “x”:
nums = ["5", "3", "10"] joined = "x".join(nums) print(joined)
Вывод:
5x3x10
В этом фрагменте кода:
- Строка “x” является строкой-разделителем
- Мы вызываем метод
join()
и передаем ему список строк - Список строк превращается в одну длинную строку, разделенную строкой-разделителем
Это отличный способ объединения множества значений в одну строку.
Объединение элементов итерируемых объектов в одну строку
В Python распространенными итерируемыми типами данных являются:
- списки
- кортежи
- строки
- множества
- словари
Когда речь идет об объединении строк, вы можете передать любой из этих итерируемых типов в качестве аргумента в вызове метода join()
. Давайте рассмотрим примеры.
Объединение элементов списка в одну строку
Конкатенацию строковых значений в списке мы уже рассмотрели, но на всякий случай повторим.
nums = ["5", "3", "10"] joined = "x".join(nums) print(joined)
Вывод:
5x3x10
Объединение элементов кортежа в одну строку
Кортеж также является итерируемым типом в Python. В отличие от списков, кортеж может быть создан просто путем разделения элементов запятыми.
Давайте объединим кортеж строк:
words = "Hello", "it", "is", "me" joined = " ".join(words) print(joined)
Вывод:
Hello it is me
Объединение символов строки в строку
Строки в Python тоже являются итерируемыми объектами, поскольку представляют собой последовательности символов. А раз строка является итерируемой, ее можно передать в качестве аргумента в метод join()
. Это может быть удобно, если вы хотите разделить символы в строке каким-нибудь значением. Например:
word = "Hello" joined = "-".join(word) print(joined)
Вывод:
H-e-l-l-o
В качестве другого примера давайте выведем каждый символ на новой строке:
word = "Hello" joined = "\n".join(word) print(joined)
Вывод:
H e l l o
Объединение элементов множества в одну строку
В Python множество – это неупорядоченная группа элементов. Множество является итерируемым. Поскольку порядок отсутствует, элементы множества выбираются из него случайным образом.
Например, давайте объединим следующее множество слов:
word = {"Hello", "this", "is", "a", "test"} joined = "-".join(word) print(joined)
Вывод:
is-this-test-Hello-a
Как видите, порядок слов неправильный. Так получилось из-за того, что во множестве понятие порядка не имеет смысла, поскольку оно неупорядочено.
Объединение элементов словаря в одну строку
В Python словарь – это итерируемая коллекция пар ключ-значение. Это означает, что словарь тоже можно объединить в строку. Но, в отличие от других итерируемых элементов, каждый элемент словаря состоит из двух частей – ключа и значения.
Как объединить ключи словаря
Если передать методу join()
в качестве аргумента словарь, будут объединены только ключи. Например:
d = {"Hello": 1, "this": 2, "is": 3, "a": 4, "test": 5} joined = "-".join(d) print(joined)
Вывод:
Hello-this-is-a-test
Как объединить значения словаря
Объединить значения очень просто. Вместо того чтобы вызывать метод join()
для словаря как такового, нужно вызвать его для значений.
Чтобы объединить значения словаря в строку:
- Укажите строку-разделитель
- Обратитесь к значениям словаря с помощью метода
dict.values()
- Вызовите метод
join
на строке-разделителе, передав в качестве аргумента значения словаря
Например:
d = {"Hello": "1", "this": "2", "is": "3", "a": "4", "test": "5"} joined = "-".join(d.values()) print(joined)
Вывод:
1-2-3-4-5
Заключение
Сегодня вы узнали, как объединить в одну строку строковые элементы итерируемых объектов. В Python это делается при помощи строкового метода join(). В качестве аргумента вы можете передать ему любой итерируемый объект. Метод join() переберет строковые элементы этого объекта и объединит их в одну строку.
Спасибо за внимание! Успешного кодинга!
Перевод статьи Artturi Jalli “Python How to Join a List of Strings”.
Пингбэк: Как в Python преобразовать строку в список - pythonturbo
Пингбэк: Многострочная строка в Python - pythonturbo
Пингбэк: Как удалить пробелы из строки в Python - pythonturbo
Пингбэк: Разделение строки в Python - pythonturbo
Пингбэк: Как посчитать уникальные символы в строке в Python - pythonturbo