Преобразование списка в строку Python
В этом посте мы обсудим, как преобразовать список в строку в Python.
Предпочтительный и быстрый способ объединения строк в iterable — это str.join() функция. В следующем примере кода показано, как это реализовать:
if __name__ == ‘__main__’ :
chars = [ ‘1’ , ‘2’ , ‘3’ ]
s = » . join ( chars )
print ( s ) # 123
Обратите внимание, что TypeError будет повышаться для любых числовых значений в iterable. Чтобы преобразовать список целых чисел в строку, вы должны сначала преобразовать каждое из нестроковых значений, присутствующих в итерации, в строку. Вы можете сделать это следующими способами:
1. Использование выражения генератора
Вы можете использовать генератор, чтобы легко преобразовать список целых чисел в строку, как показано ниже:
Как перевести список в строку 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'
Как преобразовать список в строку?
Если открыть текстовый файл с помощью 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.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
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 "