Как из кортежа сделать строку python
Перейти к содержимому

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

  • автор:

Как преобразовать кортеж с несколькими элементами в одну строку?

Подскажите пожалуйста известен ли вам более простой способ?

  • Вопрос задан более трёх лет назад
  • 5503 просмотра

Комментировать
Решения вопроса 1
Ну вот так например:

flatten = [str(item) for sub in tuple for item in sub]

Или можно itertools использовать:

import itertools flatten = [str(item) for item in itertools.chain(*tuple)]

А потом сделать join:
«».join(flatten)

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

Для преобразования строки в список символов необходимо исходную строку передать в класс 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 по фрагменту или шаблону
  • Удаление пунктуации из строки
  • Деление строки по заглавным буквам
  • Создание отчетов и писем по шаблонам

Питон , из кортежа в строку

У меня только мысли засунуть в список, потом вытащить, но всё равно есть кавычки, как от них избавиться?

a = lst=[] for i in a: lst.append(i) print(lst) ['532', '34', '0', '76'] 

Отслеживать
задан 24 дек 2018 в 16:37
93 1 1 серебряный знак 8 8 бронзовых знаков
‘, ‘.join([i for i in <"34", "76", "0", "532">])
24 дек 2018 в 16:44

<"34", "76", "0", "532">не кортеж, а множество, без дубликатов и без сохранения порядка. Кортежи в круглых скобках: («34», «76», «0», «532»). Они упорядоченные и позволяют дубликаты.

24 дек 2018 в 18:12

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

Как минимум, (если есть уверенность, что в кортеже только числа) можно в список добавлять числа, а не строки, т. е. вместо lst.append(i) , добавлять lst.append(int(i)) , но есть способ короче:

", ".join(a) 
'0, 34, 532, 76' 

Отслеживать
ответ дан 24 дек 2018 в 16:45
78 8 8 бронзовых знаков

У вас множество, не кортеж. Поэтому порядок элементов не будет сохранен. Вывести можно так

Отслеживать
ответ дан 24 дек 2018 в 16:46
3,627 2 2 золотых знака 12 12 серебряных знаков 14 14 бронзовых знаков

Можно воспользоваться распаковкой аргумента.

Отслеживать
ответ дан 24 дек 2018 в 17:04
Sour Sourse Sour Sourse
491 1 1 золотой знак 3 3 серебряных знака 9 9 бронзовых знаков

Чтобы сделать числа из строк, примените функцию int() .

Чтобы применить функцию к всякому элементу кортежи / списка / множества, используйте функцию map() , в которой в качестве первого параметра будет эта функция (без скобок):

map(int, а) # a =

Результатом будет генератор, из которого можете сделать кортеж, список или множество функциями tuple() , list() или set() . Например для

print(list(map(int, a))) 
[532, 34, 0, 76] 
for i in map(int, a): # в цикле for list() не нужен print(i) 
76 0 532 34 
for i in map(int, a): print("".format(i)) # 5 значит число позиций для цифр (может выть другое) 
 76 34 532 0 

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

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2024. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

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

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