/
Вопросы и ответы
/
Python
/

Как перевести список в строку python

Как перевести список в строку python

5 лет назад

Человек-Молекула

Ответы

0

Для приведения списка к строке используется метод .join(). Его особенность заключается в том, что это метод строки, а не списка. Поэтому вызывать его нужно на строке, которая будет являться разделителем элементов списка:

1
2
3
4
5
fruits = ['orange', 'apple', 'banana', 'kiwi']

''.join(fruits)    # orangeapplebananakiwi
' '.join(fruits)   # orange apple banana kiwi
', '.join(fruits)  # orange, apple, banana, kiwi

А ещё важно знать, что все элементы списка должны быть строками. Если список будет содержать число, то мы получим ошибку:

1
2
3
4
5
6
fruits.append(1)  # ['orange', 'apple', 'banana', 'kiwi', 1]
', '.join(fruits)

# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# TypeError: sequence item 4: expected str instance, int found

В таком случае перед использованием метода .join() все элементы списка нужно привести к строке:

1
2
fruits = [str(item) for item in fruits]
', '.join(fruits)  # 'orange, apple, banana, kiwi, 1'

4 года назад

Сергей К.

0

Список строк склеивают в одну строку методом join(). Его вызывают у строки-разделителя:

1
2
3
4
words = ["Python", "это", "просто"]
print(" ".join(words))   # => Python это просто
print(", ".join(words))  # => Python, это, просто
print("".join(words))    # => Pythonэтопросто

Если в списке числа

join() работает только со строками. Для чисел будет ошибка TypeError: sequence item 0: expected str instance, int found. Сначала преобразуйте элементы в строки:

1
2
3
numbers = [1, 2, 3]
print(", ".join(map(str, numbers)))           # => 1, 2, 3
print("-".join(str(n) for n in numbers))      # => 1-2-3

Строка в виде списка

str() вернёт список так, как его печатает Python, вместе со скобками и кавычками:

1
print(str(["a", "b"]))  # => ['a', 'b']

Так делают для логов и отладки. Для данных, которые потом нужно прочитать обратно, используйте JSON:

1
2
3
4
import json
s = json.dumps(["a", "b"], ensure_ascii=False)
print(s)               # => ["a", "b"]
print(json.loads(s))   # => ['a', 'b']

Каждый элемент с новой строки

1
2
lines = ["первая", "вторая", "третья"]
print("\n".join(lines))

Обратно: строку в список

1
2
print("1, 2, 3".split(", "))  # => ['1', '2', '3']
print(list("abc"))            # => ['a', 'b', 'c']

Строки и списки разбирают в бесплатном курсе «Основы Python».

16 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845