Преобразование строк в список, кортеж или множество символов
Для преобразования строки в список символов необходимо исходную строку передать в класс 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 преобразовать строку в массив с элементом длинной в символ?


- Python
- +1 ещё
Как открывать браузер у конкретного пользователя?
- 1 подписчик
- 8 часов назад
- 32 просмотра

- Python
- +1 ещё
Как в pandas добавить новый элемент в Series?
- 1 подписчик
- 10 часов назад
- 32 просмотра

- Python
- +2 ещё
TLSv1_3 в aiohttp?
- 1 подписчик
- 12 часов назад
- 53 просмотра

- Python
- +1 ещё
Python — selenium webdriver — переход на сайт, клик по нопке, не кликает, почему?
- 1 подписчик
- 18 часов назад
- 53 просмотра

- Python
- +2 ещё
Почему при работе с Polars в сочетании с OpenPyXL исчезает часть данных?
- 2 подписчика
- 22 часа назад
- 56 просмотров

- Python
- +1 ещё
Перестали работать кнопки. В чем проблема?
- 1 подписчик
- вчера
- 85 просмотров

- Python
Как передать переменную при вызове функции?
- 1 подписчик
- вчера
- 68 просмотров

- Python
- +1 ещё
Как мне сделать правильно запрос на python?
- 1 подписчик
- вчера
- 54 просмотра

- Python
- +1 ещё
Как получить описание устройства в системе через python?
- 1 подписчик
- вчера
- 69 просмотров

- Python
Какой подход лучше использовать для копирования крупного файла по сети, исп python script?
- 1 подписчик
- вчера
- 74 просмотра
До 250 000 ₽
от 400 000 ₽
от 120 000 ₽
19 янв. 2024, в 02:52
20000 руб./за проект
19 янв. 2024, в 00:52
3000 руб./за проект
19 янв. 2024, в 00:29
500 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Какой есть сервис предоставляющий почту для домена, но не накладывающий ограничения на общение с заграничными сервисами?
- 2 подписчика
- 2 ответа
- 3 подписчика
- 0 ответов
- 3 подписчика
- 0 ответов
- 2 подписчика
- 1 ответ
- 1 подписчик
- 1 ответ
- 2 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 4 ответа
- 2 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
Как преобразовать строковое представление списка в список в Python
Одна из распространенных проблем, с которыми может столкнуться разработчик на Python, заключается в необходимости преобразовать строку, представляющую собой список, обратно в список. Например, есть строка, которая выглядит как список:
x = '[ "A","B","C" , " D"]'
И требуется преобразовать ее в реальный список, учитывая пробелы между элементами и внутри кавычек:
x = ["A", "B", "C", "D"]
Использование встроенной функции eval()
Самым простым и прямолинейным способом преобразования строки, представляющей список, в реальный список является использование встроенной функции Python eval() . Эта функция анализирует строку и выполняет ее как выражение Python.
x = '[ "A","B","C" , " D"]' x = eval(x)
Однако, стоит учесть, что использование eval() не рекомендуется из-за возможных проблем безопасности. Если строка, которую необходимо преобразовать, приходит из ненадежного источника, она может содержать вредоносный код.
Использование модуля ast
Более безопасным способом преобразования строкового представления списка в список является использование функции literal_eval() из модуля ast . Эта функция анализирует строку и выполняет ее как выражение Python, но с ограничением только на простые типы данных, такие как числа, строки, списки, кортежи и словари.
import ast x = '[ "A","B","C" , " D"]' x = ast.literal_eval(x)
Такой подход исключает выполнение вредоносного кода, который может быть встроен в строку. Вместе с тем, он позволяет безопасно преобразовывать строковые представления списка в реальные списки.
Как преобразовать строку в массив [дубликат]
Не понял зачем Вам exec здесь нужен. Используете обычный парсинг.
Вариант 1. Через функции строки
text = '[1, 2, 3]' parse = text.strip('[]').replace(' ', '').split(',') # список из строковых значений, потом можно преобразовать в нужный форматВариант 2. Через библиотеку json .
import json text = '[1, 2, 3]' parse = json.loads(text)Вариант 3. Парсим через библиотеку re
parse = re.findall('([-+]?\d+)', text) # Если в строке-списке будут только целые числа parse = re.findall('([-+]?\d*\.\d+|\d+)', text) # Если будут еще десятичныеЧто у Вас получился список можно проверить функцией type(parse) , которая выдаст
В первом и третьем варианте на выходе будут списки из строк с числами. Их нужно будет преобразовать.