Преобразование строк в список, кортеж или множество символов
Для преобразования строки в список символов необходимо исходную строку передать в класс 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 в строку.
Зачем преобразовывать список Python в строку?
Преобразование списка Python в строку является обычным явлением, хотя наиболее распространенный случай использования, с которым я столкнулся, — это преобразование итерируемого объекта в строку, чтобы его можно было отобразить. Python предоставляет нам несколько способов преобразования списков Python в строку, эти методы не имеют конкретных ограничений для сравнения, и, следовательно, это сводится только к пониманию и удобству программистов этого метода.
Если это не так, я бы порекомендовал это решение, если вы новичок. Но не стесняйтесь пройти их все, если вам интересно их изучить.
Способы преобразования списка Python в строки
Используя join():
Наиболее распространенным и питоническим способом преобразования списка python в строку является использование метода join() . Он принимает итеративные объекты, последовательно присоединяет и возвращает их в виде строки. Однако значения в iterable должны иметь строковый тип данных, и в случае, если iterable содержит int, вы можете использовать второй метод.
string.join(iterable)
Здесь string является разделителем
iterable — Любой итерируемый объект — список, кортежи, набор и т.д.
Код для преобразования списка Python в строку с помощью join():
flexiple = ["Hire", "the", "top", "freelancers"] print(" ".join(flexiple)) #Output - "Hire the top freelancers"
Поскольку разделителем был пробел, строка содержит символы в списке, разделенные строкой.
Как упоминалось выше, попытка использовать итерацию, содержащую объект int , вернет typeerror . Следующее решение покажет вам, как это обойти.
flexiple = ["Hire", "the", "top", 10, "python","freelancers"] print(" ".join(flexiple))
Использование join() и map():
Поскольку методы join() принимают только строковые значения, мы используем map() для преобразования значений int в строку перед преобразованием списка python в строку. Методы map() выполняют определенную функцию для всех значений в итерации.
map(function, iterables)
function — Конкретная функция, которую вы хотите выполнить
iterable — Итерируемый объект, содержащий значения
Таким образом, передавая функцию str() , которая преобразует объекты в строку, мы можем преобразовать значения типа int, а затем объединить их в строку.
Код для преобразования списка Python в строку с помощью map() :
flexiple = ["Hire", "the", "top", 10, "python","freelancers"] print(" ".join(map(str,flexiple))) #Output - "Hire the top 10 python freelancers"
Использование цикла:
Третий метод преобразования списка Python в строку — это написать цикл и добавить каждую итерацию в строку. Я бы предложил этот метод, если вы новичок в Python и не знакомы с такими понятиями, как join() и map() т.д. Код может быть длиннее, но он будет более читабельным для новичка.
flexiple = ["Hire", "the", "top", 10, "python","freelancers"] f1 = "" for i in flexiple: f1 += str(i)+ " " print(f1) #Output = "Hire the top 10 python freelancers "
Как преобразовать список в строку?
Если открыть текстовый файл с помощью text.read() , возвращается список. Можно ли как-нибудь преобразовать его с строку, чтобы дальше работать с ним регулярными выражениями?
Отслеживать
11.7k 9 9 золотых знаков 28 28 серебряных знаков 40 40 бронзовых знаков
задан 24 фев 2014 в 21:58
259 1 1 золотой знак 4 4 серебряных знака 9 9 бронзовых знаков
Как раз таки read без параметров возвращает весь файл одной строкой.
24 фев 2014 в 22:16
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
myList = ['str1', 'str2', 'str3'] myString = ''.join(myList) # '' - разделитель между элементами списка соответственно >>> str1str2str3 myString = '_'.join(myList) >>> str1_str2_str3
Отслеживать
ответ дан 24 фев 2014 в 22:28
WorldCount WorldCount
799 5 5 серебряных знаков 12 12 бронзовых знаков
Pep-8 рекомендует my_list , my_string вместо myList , myString
16 окт 2016 в 6:04
Всё верно. Теперь так и пишу.
20 окт 2016 в 15:33
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
3 варианта, как сконвертировать список(list) в строку в Python 3
Это метод строк — он берет список и соединяет элементы списка в строку.
1. Если у вас список строк, можно просто использовать join.
my_list = ["Pythonist.ru", "-", "хороший", "сайт", "по","Python"] print(" ".join(my_list)) >>>Pythonist.ru - хороший сайт по Python
2. Если это список чисел, вы можете использовать map() для приведения всех элементов списка к строке, а потом просто склеить их в одну строку методом join()
my_list2 = [66, 77, 88, 99] print(" ".join(map(str, my_list2))) >>> 66 77 88 99
3. Если вы хотите получить разделенные запятой строки, можно использовать такой shortcut кода:
my_list3 = [11, 22, 33, 44, 55] print(str(my_list3).strip('[]')) >>> 11, 22, 33, 44, 55
Больше 50 задач по Python c решением и дискуссией между подписчиками можно посмотреть тут
