How to turn list into string python

4 Ways to Convert a List to a String in Python (Complete Guide)

To convert a Python list into a string, use the join() method of a string:

words = ["This", "is", "a", "test"] sentence = " ".join(words) print(sentence)

This is a complete guide to converting a list to a string in Python. This guide shows you different approaches to making the conversion. Besides, you learn what to do if the list doesn’t have strings, to begin with.

If The Original List Doesn’t Contain Strings

If a list does not contain strings, you need to convert the elements to a string before merging them into a single string. You can do this by using a list comprehension, for example.

For instance, let’s convert a list of numbers to a string by using list comprehension and the join() method:

numbers = [1, 2, 3, 4, 5] numbers_str = " ".join([str(number) for number in numbers]) print(numbers_str)

Convert List to a String in Python

There are 4 main ways you can use to convert a list into a string in Python.

  1. Use string.join() method for a list of strings
  2. Use a list comprehension for a list of non-string elements
  3. Use the built-in map() function
  4. Use a regular for loop to convert the list into a string
Читайте также:  Что такое 112 cpp

Let’s take a closer look at each of these approaches.

1. Merge a List of Strings to One String with the join() Method

Using the join method to convert a list to a long string in Python

This approach works if you want to merge a list of strings into one long string.

The string type in Python has a built-in method called join() . You can call join on any string. When you call join on a string with a list of strings, the list of strings is merged together by using the main string as a separator.

For instance, if you want to create a string where each string is on its own line, use a new line string as a separator. In other words, call join() on the string «\n» which represents a line break.

words = ["This", "is", "a", "test"] sentence = "\n".join(words) print(sentence)

Now if you want to form a sentence based on a list of strings, call the join() method on an empty space. This way it joins the list of strings and separates them by an empty space.

words = ["This", "is", "a", "test"] sentence = " ".join(words) print(sentence)

2. Use a List Comprehension

Using a list comprehension to join a list into a long string in Python

If you have a list that does not contain strings and want to create a string from it, use comprehension.

If you have not heard about list comprehension, I highly recommend checking this article.

A list comprehension is a shorthand for a for loop. It transforms one list into another. In this case, list comprehension converts a list of non-string elements to a list of strings.

For instance, let’s create a list of numbers and transform it into a list of strings:

numbers = [1, 2, 3, 4, 5] num_strings = [str(number) for number in numbers] print(num_strings)

Now you know how to use comprehension to convert a list to a list of strings. To merge this list into one string, use the join() method as you saw earlier:

numbers = [1, 2, 3, 4, 5] numbers_str = " ".join([str(number) for number in numbers]) print(numbers_str)

3. Use the Built-In map() Function

To convert a list of non-string elements into one string, you need to transform the list into a list of strings.

In the previous section, you saw how you can do it using list comprehension.

In this section, you are going to learn how you can use the built-in map() function to do the same. In case you are unfamiliar with mapping in Python, check out this article for further details.

In short, the map() function takes an operation and applies it to a collection of items, such as a list. The result is a new collection as a map object. The syntax for using map() is as follows:

And under the hood, all it does is it loops through the collection and calls operation() on each element.

To demonstrate, let’s create a list of numbers and turn it into a list of strings using the map() function:

numbers = [1, 2, 3, 4, 5] num_strings = map(str, numbers) print(list(num_strings))

As described, this works such that the map() function calls str() on each element of a list. Then it returns a new map object that contains all the elements as a string. To convert this map object to a list, we use the built-in list() function.

Let’s now apply this to our original problem on how to transform a list into a string.

As we are dealing with a list of numbers, we need to convert it to a list of strings. Then we can use the join() method.

numbers = [1, 2, 3, 4, 5] num_string = " ".join(map(str, numbers)) print(num_string) print(f"The type of number_string is ")

1 2 3 4 5 The type of number_string is

4. Use a For Loop to Convert a List into a String

A for loop that converts a list of numbers to a string in Python

Last but not least, you can always use a regular for loop to convert a list into a string.

This approach takes quite a few lines of code, but it is readable and straightforward.

This loop takes each number from a list of numbers, transforms it into a string, and adds it to the end of a string.

numbers = [1, 2, 3, 4, 5] num_string = "" for number in numbers: num_string += str(number) num_string += " " print(num_string) print(f"The type of number_string is ")

1 2 3 4 5 The type of number_string is

Conclusion

Today you learned how to convert a Python list to a string using these four ways:

  1. String.join() method.
  2. List comprehension + string.join() .
  3. The built-in map() function + string.join() .
  4. For loop to convert the list into a string.

Thanks for reading. I hope you enjoy it. Happy coding!

Further Reading

Источник

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

Рассказываем о методе join() и других полезных инструментах для конвертирования Python‑списков в строки.

Иллюстрация: Оля Ежак для Skillbox Media

Иван Стуков

В Python существует два основных способа сделать из списка строку: с помощью цикла и с помощью метода join(). У обоих есть нюансы, о которых мы сейчас расскажем.

Преобразование с помощью цикла

Более понятный для новичка, но и более громоздкий способ перевести список в строку — воспользоваться циклом. Если вы уже знаете его и просто хотите узнать более эффективный и быстрый метод, то сразу переходите к следующему разделу. А если нет, то давайте разбираться.

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

lst = ['Преобразование','через','цикл'] #Создаём пустую строку string = '' #По очереди добавляем к ней каждый элемент списка for el in lst: string += el print(string) >>> Преобразованиечерезцикл

Однако такой код не будет работать, если в списке есть не только строки, но и, например, числа. Дело в том, что в Python нельзя смешивать данные разных типов.

Поэтому, перед тем как добавлять элемент в список, его нужно преобразовать в строку. Делается это с помощью функции str(). Добавим её в наш код.

#Создаём список, в котором есть как строки, так и цифры lst = ['Преобразование','через','цикл', 2] string = '' for el in lst: string += str(el) #Превращаем каждый элемент списка в строку print(string) >>> Преобразованиечерезцикл2

Если нужно установить разделитель между строками, то для него нужно прописать отдельную строчку кода внутри цикла.

lst = ['Преобразование','через','цикл', 3] string = '' for el in lst: #Добавляем к строке элемент списка string += str(el) #Добавляем к строке разделитель — в данном случае пробел string += ' ' print(string) >>> Преобразование через цикл 3

Обратите внимание: раз мы добавляем разделитель на каждой итерации, пробел будет и после цифры 3 нашего последнего элемента. Это легко проверить, если вместо пробела добавлять какой-то другой, видимый символ.

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

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

Метод join(), по сути, делает всё то же самое, что и наш цикл, но лучше, удобнее и занимает всего одну строку. Вот как его применяют:

В качестве аргумента lst он получает список, элементы которого и будет объединять в строку, а string — это разделитель. Если мы не хотим его устанавливать, то в качестве string нужно указать пустую строку.

Посмотрим, как join() применяется на практике.

lst = ['Преобразование', 'через', 'метод', 'join()'] #Объединяем элементы списка с пустым разделителем print(''.join(lst)) >>> Преобразованиечерезметодjoin() #Устанавливаем пробел в качестве разделителя print(' '.join(lst)) >>> Преобразование через метод join()

Заметили особенность? Разделители ставятся только между элементами, а не после каждого элемента, как было в нашем цикле. join() — умница. Однако и тут есть ахиллесова пята: если в списке встречаются нестроковые элементы, мы получим ошибку. Чтобы этого избежать, надо опять-таки сначала превратить все нестроки в строки. Сделать это можно двумя способами.

Использовать выражение-генератор

Выражение-генератор — это конструкция, которая позволяет провести операцию над каждым элементом списка. Оно возвращает генератор, с которым метод join() обращается точно так же, как и со списками.

lst = [1, 1.2, 'строка', False] print(' '.join(str(el) for el in lst)) >>> 1 1.2 строка False

Конструкция str(el) for el in lst означает, что каждый элемент el в списке lst будет превращён в строку с помощью функции str (стандартной функции Python, которую мы уже использовали, когда работали с циклом).

Использовать функцию map()

Функция map() умеет делать то же самое, что и выражение-генератор, но их синтаксис отличается. В качестве первого аргумента она принимает саму операцию, в качестве второго — список, к элементам которого эта операция применяется.

lst = [1, 1.2, 'строка', False] print(' '.join(map(str, lst))) >>> 1 1.2 строка False

Конструкция map(str, lst) означает, что каждый элемент в списке lst будет превращён в строку с помощью функции str. Обратите внимание, что в качестве аргумента в map() передаётся только название функции, без скобок.

Итоги

Преобразовать список в строку можно с помощью цикла, но для этого есть и более удобный инструмент — метод join().

Если содержит нестроковые элементы, то их для начала придётся превратить в строки — иначе выскочит ошибка. Для этого можно воспользоваться выражением-генератором или функцией map().

Читайте также:

Источник

Оцените статью