Метод join() в Python: преобразование списка в строку и наоборот
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

В этом руководстве по Python 3 мы рассмотрим метод join(), который отвечает за объединение списка в строки. Такой метод поможет вам перевести список в строку очень доступным способом. 

Метод принимает итерируемый объект в качестве аргумента, и, поскольку список удовлетворяет этим условиям, то его можно использовать. Кроме того, список должен состоять из строк. Если вы попытаетесь использовать функцию в списке с другим содержимым, результат будет следующим: TypeError: sequence item 0: expected str instance, int found

Давайте рассмотрим пример:

>>> alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', '...']
>>> alphabet_string = ', '.join(alphabet)
>>> print(f'Алфавит: {alphabet_string}')

Результат выполнения:

Алфавит: A, B, C, D, E, F, G, ...

Почему join() — метод строки, а не списка?

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

join() нельзя использовать для объединения различных типов данных в списке:

alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 2, 3]
alphabet_string = ', '.join(alphabet)
print(f'Алфавит: {alphabet_string}')

Результат:

Traceback (most recent call last):
  File "C:\Users\Razilator\Desktop\Courses\nth-coding\main.py", line 2, in <module>
    alphabet_string = ', '.join(alphabet)
TypeError: sequence item 7: expected str instance, int found

Но, чтоб избежать данной ошибки, можно преобразовать значения в строки следующим образом:

alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 2, 3]
alphabet = [str(i) for i in alphabet]
alphabet_string = ', '.join(alphabet)
print(f'Алфавит: {alphabet_string}')

Результат:

Алфавит: A, B, C, D, E, F, G, 1, 2, 3

Обратное преобразование строки в список

Если Вам необходимо произвести обратную операцию – создать список из строки, Вы можете использовать метод строки split(), который очень похож на join(). Вот простой пример:

alphabet = 'A, B, C, D, E, F, G'.split(', ')
print(f'Алфавит: {alphabet} - {type(alphabet)}')

Результат:

Алфавит: ['A', 'B', 'C', 'D', 'E', 'F', 'G'] - <class 'list'>

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

Теги записи: Python, Основы Python, join(),
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)