Python Присоединить список

Python join list означает объединение списка строк с указанным разделителем для формирования строки. Иногда это полезно, когда вам нужно преобразовать список в строку. Например, преобразовать список алфавитов в строку, разделенную запятыми, для сохранения в файле.

Python Join List

Мы можем использовать функцию join() из строки python, чтобы объединить список строк. Эта функция принимает аргументом iterable, и список является итерируемым, поэтому мы можем использовать ее с List. Также список должен содержать строки, если вы попытаетесь объединить список int, то получите сообщение об ошибке TypeError: sequence item 0: expected str instance, int found. Давайте рассмотрим короткий пример объединения списка в Python для создания строки.

vowels = ["a", "e", "i", "o", "u"]

vowelsCSV = ",".join(vowels)

print("Vowels are = ", vowelsCSV)

Когда мы запустим вышеуказанную программу, она выдаст следующий результат.

Vowels are =  a,e,i,o,u

Python join two strings

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

message = "Hello ".join("World")

print(message) #prints 'Hello World'

Почему функция join() находится в String, а не в List?

Одним из вопросов, который возникает у многих разработчиков Python, является вопрос: почему функция join() является частью String, а не List. Не было бы проще запомнить и использовать синтаксис ниже?

vowelsCSV = vowels.join(",")

Существует популярный вопрос на StackOverflow по этой теме, здесь я перечислю наиболее важные моменты из обсуждений, которые для меня вполне логичны.

Основная причина в том, что функцию join() можно использовать с любым итерируемым объектом, и результат всегда является строкой, поэтому логично иметь эту функцию в API String, а не иметь её во всех классах итерируемых объектов.

Соединение списка с несколькими типами данных

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

names = ['Java', 'Python', 1]
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

Давайте посмотрим результат выполнения этой программы: Это была всего лишь демонстрация того, что список, содержащий разные типы данных, не может быть объединен в одну строку с помощью функции join(). Список должен содержать только строковые значения.

Разделение строки с помощью функции join

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

names = 'Python'
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

Это показывает, что когда строка передается как аргумент функции join(), она разделяется по символам и с указанным разделителем.

Использование функции split()

Помимо разделения с помощью функции join(), функцию split() также можно использовать для разделения строки, которая работает почти так же, как и функция join(). Давайте рассмотрим фрагмент кода:

names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

split = single_str.split(delimiter)
print('List: {0}'.format(split))

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

Разделение только n раз

Функция split(), которую мы продемонстрировали в последнем примере, также принимает дополнительный второй аргумент, который указывает количество раз, которое должна выполняться операция разделения. Вот пример программы для демонстрации ее использования:

names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

split = single_str.split(delimiter, 1)
print('List: {0}'.format(split))

Давайте посмотрим на вывод этой программы: В этот раз операция разделения выполнялась только один раз, так как мы указали в параметре функции split(). Вот и все для объединения списка для создания строки в Python и использования функции split() для получения исходного списка снова.

Source:
https://www.digitalocean.com/community/tutorials/python-join-list