Чтобы преобразовать список лишенство строк в строку, используйте ” .join (lst) Способ с пустой сепаратором между элементами. Если у вас есть список объектов, сначала преобразуйте каждый элемент в строку и присоединяйтесь к результату с выражением генератора ” .join (str (x) для x в lst) .
Проблема : Учитывая список элементов. Как преобразовать их в строку?
Пример : Учитывая следующий список строк.
lst = ['a', 'b', 'c']
Вы хотите преобразовать список строк в следующую строку:
'abc'
Какой самый питонический способ преобразования списка в строку? Ответ зависит от нюансов.
Вот быстрый обзор, прежде чем мы погрузиться в каждый из методов:
Упражнение : Запустите код! Какой самый питонический путь по вашему мнению?
Метод 1: Присоединяйтесь к списку строк
Самый простой способ – использовать String.join (ИТЕРАЛ)
Метод, который объединяет все значения в ИТЕРИТЕЛЬНО
(например, список) с использованием сепаратора строка
между элементами.
lst = ['a', 'b', 'c'] s = ''.join(lst)
Вывод – следующая строка:
print(s) # abc
Из-за его кратко и эффективности, это самый питонический способ преобразования списка Строки в строку. Однако метод join () ожидает, что вы передаете список строк. Если у вас есть список неровных строк, он бросит ошибку!
Связанная статья : Ultimate Guide к Python присоединиться
Способ 2: Присоединяйтесь к списку некруточных строк с выражением генератора
Итак, что делать, если вы хотите преобразовать список общих объектов в строку?
Самый питонический путь к ConcateNate Список объектов – это выражение '' .join (str (x) для x в lst)
который преобразует каждый объект в строку с помощью встроенного str (...)
Функция в выражение генератора Отказ Вы можете объединить результирующий список строк, используя Присоединяйтесь ()
Метод в пустой строке в качестве разделителя. Результатом представляет собой одно строковое значение, которое является конкатенацией строковых представлений объектов.
lst = [1, 2, 3] s = ''.join(str(x) for x in lst) print(s) # 123
Этот общий метод работает для всех объектов (потому что все объекты реализуют метод __str __
метод по умолчанию). Это самый питонический способ преобразования списка некрутой
Связанная статья : Какой самый питонический способ присоединиться к списку объектов?
Способ 3: Строконные конкатенации с +
Только ради полноты, я хочу выделить, что вы также можете объединить все строки в списке с помощью оператора +. Если у вас есть список с несколькими объектами, это жизнеспособный вариант:
lst = ['a', 'b', 'c'] s = lst[0] + lst[1] + lst[2] print(s) # abc
Это неэффективно, потому что каждый +
Оператор создает новую строку. Для N
Список элементов, вы создаете N-1
Новые строки в памяти.
Связанная статья : Оператор + для конкатенации строки.
Это должно быть немного изменено при объединении списка объектов в одну строку:
Метод 4: Строконные конкатенации с + и ул.
Опять же, если у вас есть список объектов, вам нужно сначала преобразовать каждый объект в строку:
# Method 4: String Concatenation with + and str() lst = [1.0, 2.0, 3.0] s = str(lst[0]) + str(lst[1]) + str(lst[2]) print(s) # 1.02.03.0
Это очень утомительно, и оно заслуживает под названием «Наименее питонический способ преобразовать список в строку» Отказ Вы должны предпочесть общее Метод 2 Это не только короче и более эффективно, но и более читаемое и, как правило, применимо.
Метод 5: Используйте карту + присоединиться
Функция карты позволяет сначала преобразовать каждый элемент в строку. Затем вы можете присоединиться к струнам, используя стандартную String.join () метод в результате результирующегося от строк.
lst = [1, 2, 'hello', 3.2] s = ''.join(map(str, lst)) print(s) # 12hello3.2
Это прекрасно работает для списка объектов, а также довольно питон. Многие кодеры Python, как этот функциональный стиль, но я не считаю его самым питонным. Код Python должен быть читабелен. Гвидо Ван Россом Создатель Python, пытался избежать функционального программирования, потому что он не нашел его читаемого по сравнению с Понимание списка Или его обобщение “Генераторные выражения” (см. Метод 2 ).
Связанная статья : Функция карты () в Python
Метод 6: простая петля
Посмотрим, какие кодеры, которые приезжают с другого языка программирования, такие как Java, будут делать:
lst = [1, 2, 'hello', 3.2] s = '' for x in lst: s += str(x) print(s) # 12hello3.2
Они сначала создали пустую строку. Затем они добавляют строковое представление элемента каждого списка в строку, пока не будут добавлены все элементы списка.
Это очень неэффективно из-за повторного создания новых строк, и ему нужны три строки вместо одного. Как часто бывает в Python, вы можете избежать циклов, используя мощные встроенные возможности Python.
Связанная статья : Иди против Питона
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.