Как преобразовать список в строку в Python

В этом кратком руководстве мы рассмотрим, как конвертировать список в строку. Зачем вообще это делать? В Python это обычная практика. Чаще всего это нужно, чтобы вывести содержимое списка в виде строки или чтобы совершить какие-то манипуляции с полученной строкой.

Преобразовать список в строку можно разными способами. Выбор подходящего зависит от ваших предпочтений и специфики вашего кода.

Скачивайте книги ТОЛЬКО на русском языке у нас в телеграм канале: PythonBooksRU

Использование метода join()

Наиболее питоническим способом преобразовать список в строку является использование метода join(). Он, собственно, для этого и предназначен. Этот метод принимает итерируемый объект, соединяет его элементы и возвращает в виде строки.

Учтите, что значения в итерируемом объекте должны иметь строковый тип данных. В случае, если ваш список содержит элементы типа int, нужно использовать другой метод.

Синтаксис join():

string.join(iterable)

Здесь string обозначает желаемый разделитель. В качестве параметра – iterable – выступает любой итерируемый объект: список, кортеж, множество и т.д.

Пример преобразования списка в строку с помощью join():

flexiple = ["Hire", "the", "top", "freelancers"]

print(" ".join(flexiple))

# Результат:
# Hire the top freelancers

В этом коде разделителем был пробел (" "), поэтому в итоговой строке элементы списка разделены пробелом.

А теперь, в качестве эксперимента, давайте попробуем использовать join() для объединения элементов списка, когда среди них есть числа. Мы получим TypeError.

flexiple = ["Hire", "the", "top", 10, "python","freelancers"]

print(" ".join(flexiple))

# Результат:
# TypeError: sequence item 3: expected str instance, int found

Примечание редакции: об исключениях в Python читайте в статьях “Ошибки и исключения в Python” и “Как обрабатывать исключения в Python”.

Использование функций join() и map()

Сделать из списка строку можно также с помощью функций map() и join(). Такой подход используется, когда итерируемый объект (в нашем случае это список) содержит целочисленное значение.

Поскольку метод join() объединяет только строковые значения, мы используем метод map() для преобразования целочисленных значений в строковые.

Метод map() выполняет какую-то определенную функцию для всех значений в итерируемом объекте. В нашем случае это будет функция str(), которая преобразует каждое значение в списке в строку.

Синтаксис map():

map(function, iterables)

Функция map() имеет два параметра:

  • function – конкретная функция, которую вы хотите выполнить для каждого элемента итерируемого объекта
  • iterables – итерируемые объекты.

Используя функцию str(), которая преобразует объекты в строку, мы можем привести целочисленные значения к строковым перед использованием метода join().

Пример преобразования списка в строку с помощью map():

flexiple = ["Hire", "the", "top", 10, "python","freelancers"]

print(" ".join(map(str,flexiple)))

# Результат:
# Hire the top 10 python freelancers

Как из списка сделать строку с помощью цикла

Третий метод преобразования списков в строки в Python – это перебор элементов списка в цикле и добавление их в строку. Я бы не советовал использовать этот метод, поскольку при каждом таком добавлении Python фактически создает новую строку. Такой код будет работать медленно.

Приводим пример только как иллюстрацию того, что в принципе применение цикла возможно:

flexiple = ["Hire", "the", "top", 10, "python","freelancers"]

f1 = ""

for i in flexiple:
    f1 += str(i)+ " " 

print(f1)

# Результат:
# Hire the top 10 python freelancers

Заключение

Скорее всего преобразовывать список в строку вам придется не единожды, поэтому лучше создать для этого особую функцию.

Как уже говорилось, вы одинаково успешно можете конвертировать список в строку любым из приведенных здесь способов. Просто учитывайте свою ситуацию. Первый подход (метод join()) можно использовать в том случае, если вы уверены, что значения с списке будут строковыми. Если такой уверенности нет, лучше остановиться на втором подходе (join() в сочетании с map()). А последний подход предназначен только для разбора самой концепции преобразования списка в строку.

Когда освоите эти подходы, попробуйте сделать из списка строку с помощью представления списка.

Примечание редакции: о представлениях читайте в статье “List comprehensions и другие comprehensions в Python”.

Перевод статьи «Various methods to convert lists to string in python?».

2 комментария к “Как преобразовать список в строку в Python”

  1. Доброго времени суток, я вот совсем новечек но код заработал и так. Если не сложно расскажите почему без преобразования в строку.

    flexiple = [“Hire”, “the”, “top”, 10, “python”,”freelancers”]

    for i in flexiple:
    print(i, end=’ ‘)

  2. Пингбэк: Разделение строки в Python

Оставьте комментарий

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