Преобразование строк в список, кортеж или множество символов
Для преобразования строки в список символов необходимо исходную строку передать в класс 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 по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
Преобразование строки в кортеж по разделителю
Разбить с помощью метода .split() (получится список строк), потом через генератор преобразовать строки в int , потом уже превратить все в кортеж:
s = '68259640,86902941,41040730,86376448,59169047,77037959,80441051,83822347,90871250,90672483,89596230,88062037,86575434,84129427,76139274,74980634,65350893,60685291,55771316' t = tuple(int(item) for item in s.split(',')) print(t) # (68259640, 86902941, 41040730, 86376448, 59169047, 77037959, 80441051, 83822347, 90871250, 90672483, 89596230, 88062037, 86575434, 84129427, 76139274, 74980634, 65350893, 60685291, 55771316)
Преобразование кортежа в строку в Python
В этом посте мы обсудим, как преобразовать кортеж в строку Python.
1. Использование join() функция
Идея состоит в том, чтобы использовать встроенную функцию str.join , который возвращает конкатенацию строк в итерируемом объекте.
if __name__ == ‘__main__’ :
tup = ( ‘A’ , ‘B’ , ‘C’ )
s = » . join ( tup )
print ( s ) # ABC
Если вам нужна строка, разделенная запятыми, или строка, разделенная другим разделителем, вы можете использовать следующий код:
if __name__ == ‘__main__’ :
tup = ( ‘A’ , ‘B’ , ‘C’ )
s = delim . join ( tup )
print ( s ) # A,B,C
Это повысит TypeError для любых нестроковых значений в кортеже. Например, происходит сбой, если кортеж содержит числа. Чтобы справиться с этим, вы можете использовать map функция:
if __name__ == ‘__main__’ :
tup = ( 1 , 2 , 3 )
s = » . join ( map ( str , tup ) )
print ( s ) # 123
2. Использование операции уменьшения
Другой вариант — выполнить операцию редукции с помощью functools.reduce функция.
from functools import reduce
if __name__ == ‘__main__’ :
tup = ( ‘A’ , ‘B’ , ‘C’ )
s = reduce ( lambda x , y : x + y , tup , » )
print ( s ) # ABC
Это повысит TypeError для любых нестроковых значений в кортеже. Чтобы справиться с этим, вы можете использовать конструктор строк:
from functools import reduce
if __name__ == ‘__main__’ :
tup = ( 1 , 2 , 3 )
s = reduce ( lambda x , y : str ( x ) + str ( y ) , tup , » )
print ( s ) # 123
Вот и все о преобразовании кортежа в строку Python.
Оценить этот пост
Средний рейтинг 5 /5. Подсчет голосов: 23
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
