Преобразование строк в список, кортеж или множество символов
Для преобразования строки в список символов необходимо исходную строку передать в класс list() . Это полезно для каких то преобразований в цикле с отдельными символами в строке (удаление/добавление/изменение) или если нужно отобразить строку наоборот (развернуть строку).
Пример преобразования строки в список символов и совершение различных манипуляции.
>>> line = 'абракадабра' >>> line_list = list(line) >>> line_list # ['а', 'б', 'р', 'а', 'к', 'а', 'д', 'а', 'б', 'р', 'а'] # изменим 4 символ на 'у', добавим в конец 'с' и удалим 1 символ >>> line_list[3] = 'y' >>> line_list.append('c') >>> line_list.pop(0) >>> line_list # ['б', 'р', 'y', 'к', 'а', 'д', 'а', 'б', 'р', 'а', 'c'] # развернем строку >>> rev = list(reversed(line_list)) >>> rev # ['c', 'а', 'р', 'б', 'а', 'д', 'а', 'к', 'y', 'р', 'б'] # теперь снова получим строку >>> line = ''.join(rev) >>> line # 'cарбадакyрб'
Преобразование строки в кортеж производится аналогичным способом, только строка передается в класс tuple() . Кортеж это неизменяемый тип данных, следовательно дальнейшие изменения кортежа недоступны.
# преобразование строки в кортеж символов >>> line = 'абракадабра' >>> line_tuple = tuple(line) >>> line_tuple # ('а', 'б', 'р', 'а', 'к', 'а', 'д', 'а', 'б', 'р', 'а') # теперь снова получим строку >>> line = ''.join(line_tuple) # 'абракадабра'
Преобразование строки в множество полезно, когда необходимо получить уникальные символы в строке (без повторов). Обратите внимание на то, что после преобразования строки в множество порядок следования символов не сохраняется!
# преобразование строки в множество символов >>> line = 'абракадабра' >>> line_set = set(line) >>> line_set #
Преобразование символов строки в код ASCII и обратно.
В Python есть возможность выполнить преобразование одиночного символа в его целочисленный код ASCII, для чего нужно передать этот символ функции ord() , она возвращает фактическое числовое значение соответствующего байта в памяти. Обратное преобразование выполняется с помощью функции chr() , она получает целочисленный код ASCII и преобразует его в соответствующий символ:
>>> ord('s') # 115 >>> chr(115) # 's'
Эти функции можно применить ко всем символам строки в цикле. Например, чтобы получить следующий по алфавиту символ, его можно преобразовать в число и выполнить математическое действие над ним:
>>> x = 'А' >>> y = ord(x) + 1 >>> chr(y) # 'Б'
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Преобразование строки в число
- Строку в список, кортеж или множество символов
- Одинарные, двойные и тройные кавычки в строке Python
- Вывод специальных символов в строке Python «как есть»
- Объединение и повторение строк
- Индексирование строк
- Использование срезов строк
- Cрез строки Python от заданного символа/знака до конца строки
- Создание макета для печати базовыми методами строк
- Способы форматирования текстовых строк
- Подсчет повторений слов в тексте, деление строки на список слов
- Удаление слова из строки Python по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
Как перевести список в строку python
Для приведения списка к строке используется метод .join() . Его особенность заключается в том, что это метод строки, а не списка. Поэтому вызывать его нужно на строке, которая будет являться разделителем элементов списка:
fruits = ['orange', 'apple', 'banana', 'kiwi'] ''.join(fruits) # orangeapplebananakiwi ' '.join(fruits) # orange apple banana kiwi ', '.join(fruits) # orange, apple, banana, kiwi
А ещё важно знать, что все элементы списка должны быть строками. Если список будет содержать число, то мы получим ошибку:
fruits.append(1) # ['orange', 'apple', 'banana', 'kiwi', 1] ', '.join(fruits) # Traceback (most recent call last): # File "", line 1, in # TypeError: sequence item 4: expected str instance, int found
В таком случае перед использованием метода .join() все элементы списка нужно привести к строке:
fruits = [str(item) for item in fruits] ', '.join(fruits) # 'orange, apple, banana, kiwi, 1'
Join Python

Основы
Автор Иван Душенко На чтение 8 мин Просмотров 20.9к. Опубликовано 18.02.2022
Иногда перед программистом встаёт задача преобразования итерируемого объекта (чаще всего списка) в строку. Как правило, это делается для отображения куда-либо: печать в консоль или запись в файл. Возможна и другая неочевидная причина перевести список в строку – использовать методы строки и функции, работающие с этим типом данных. К примеру, поиск по сложным условиям иногда проще реализовать через регулярные выражения.
В Python, если такое преобразование сделать «в лоб», получится некрасиво:
var = [1, '2', 3] print(var) print(str(var)) # Вывод: [1, '2', 3] [1, '2', 3]А как сделать красиво Вы узнаете в этом уроке.
Преобразование списка в строку методом join
Чаще всего для преобразования списка в строку используют метод строки join() python. Этот метод принимает итерируемый объект в качестве аргумента. Напомню, что итерируемыми являются те объекты, элементы можно перебрать. К примеру, список, множество, кортеж и, кстати, строка.
Объект (строка), к которому применяется метод будет выступать в роли разделителя.
Вот как это работает:
var = ['1', '2', '3'] print(', '.join(var)) # Вывод: 1, 2, 3Как видите, строка ‘, ‘ была вставлена между элементами списка var и таким образом сформирована новая строка, уже без квадратных скобок.
Есть одно серьёзное ограничение – все элементы, которые объединяются, должны иметь тип строки. Если это условие не соблюсти, интерпретатор вернёт исключение:
var = [1, 2, 3] print(', '.join(var)) # Вывод: Traceback (most recent call last): File "C:\Users\Dushenko\AppData\Roaming\JetBrains\PyCharm2021.1\scratches\scratch.py", line 3, in print(', '.join(var)) TypeError: sequence item 0: expected str instance, int found Process finished with exit code 1Почему join() — метод строки, а не списка?
Синтаксис метода кажется немного неудобным. Почему бы не сделать так:
var = [1, 2, 3] print(var.join(', ')) # Вывод: Но нет… Traceback (most recent call last): File "C:\Users\Dushenko\AppData\Roaming\JetBrains\PyCharm2021.1\scratches\scratch.py", line 3, in print(var.join(', ')) AttributeError: 'list' object has no attribute 'join' Process finished with exit code 1У многих возникает вопрос: почему в Python метод join() реализован именно так? Почему он принадлежит типу строка?
Всё дело в том, что этот метод может работать с любым итерируемым объектом, а значит, если бы метод принадлежал итерируемому объекту, его пришлось бы реализовывать для каждого итерируемого типа. С другой стороны, разделитель – всегда строка и текущий синтаксис позволяет реализовать метод Python join() только для одного типа – строкового.
Разбитие строки с помощью join()
Я уже упоминал вначале что строки тоже можно итерировать. Это означает, что к ним данный метод тоже применим. Элементами последовательности в данном случае являются символы. Вот пример:
4 способа как преобразовать список в строку в Python
Давайте разберем 4 способа как преобразовать список в строку в Python.
Способ 1. Использование цикла
Данная строка выполняет итерацию с использованием цикла for и добавляет свой элемент в строковую переменную.
# List is converting into string def convertList(list1): str = '' # initializing the empty string for i in list1: #Iterating and adding the list element to the str variable str += i return str list1 = ["Hello"," My", " Name is ","Devansh"] #passing string print(convertList(list1)) # Printin the converted string valueHello My Name is DevanshСпособ 2. Использование метода .join()
Мы также можем использовать метод .join() для преобразования списка в строку.
# List is converting into string def convertList(list1): str = '' # initializing the empty string return(str.join()) # return string list1 = ["Hello"," My", " Name is ","Devansh"] #passing string print(convertList(list1)) # Printin the converted string valueHello My Name is DevanshВышеупомянутый метод не рекомендуется, если список содержит как строку, так и целое число в качестве элемента. В таком сценарии используйте добавление элемента к строковой переменной.
Способ 3. Применение понимания списка
# Converting list into string using list comprehension list1 = ["Peter", 18, "John", 20, "Dhanuska",26] convertList = ' '.join([str(e) for e in list1]) #List comprehension print(convertList)Peter 18 John 20 Dhanuska 26Способ 4. Метод map()
# Converting list into string using list comprehension list1 = ["Peter", 18, "John", 20, "Dhanuska",26] convertList = ' '.join(map(str,list1)) # using map funtion print(convertList)Peter 18 John 20 Dhanuska 26