Перейти к содержимому

Как из списка сделать строку python

  • автор:

Преобразование строк в список, кортеж или множество символов

Для преобразования строки в список символов необходимо исходную строку передать в класс 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 value
Hello 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 value
Hello 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

Добавить комментарий

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