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