Метод join() и объединение строк в Python

В этой статье мы рассмотрим, как объединить в одну строку строковые элементы списка, кортежа, словаря, множества, а также символы строки. В Python это делается при помощи строкового метода join().

БЕСПЛАТНО СКАЧАТЬ КНИГИ по Python на русском языке можно у нас в телеграм канале "Python книги на русском"

Примечание. О конкатенации строк при выводе можно почитать в статье “Как конкатенировать строки в Python”.

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

  1. Укажите строку-разделитель
  2. Вызовите метод join() для строки-разделителя и передайте ему список

Например, соединим список слов через дефис:

words = ["This", "is", "a", "test"]
joined = "-".join(words)

print(joined)

Вывод:

This-is-a-test

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

Для этого:

  1. Укажите пробел в качестве строки-разделителя
  2. Вызовите метод 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() для словаря как такового, нужно вызвать его для значений.

Чтобы объединить значения словаря в строку:

  1. Укажите строку-разделитель
  2. Обратитесь к значениям словаря с помощью метода dict.values()
  3. Вызовите метод 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”.

5 комментариев к “Метод join() и объединение строк в Python”

  1. Пингбэк: Как в Python преобразовать строку в список - pythonturbo

  2. Пингбэк: Многострочная строка в Python - pythonturbo

  3. Пингбэк: Как удалить пробелы из строки в Python - pythonturbo

  4. Пингбэк: Разделение строки в Python - pythonturbo

  5. Пингбэк: Как посчитать уникальные символы в строке в Python - pythonturbo

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *