@marataziat
Джангист-тракторист

Как мне отформатировать лист в Python?

Я имею следующий текст: (u'123',) (u'dadasd',) (u'hello seal',) (u'hello seal',) (u'seal',) (u'\u0442\u044e\u043b\u0435\u043d\u044c\u0451',) Как мне его преобразовать в 123,dadasd, hello seal, hello seal, seal? При этом используя Python?
  • Вопрос задан
  • 430 просмотров
Решения вопроса 1
qlkvg
@qlkvg
python backend developer
import ast
string = string.replace(") (", "),(")
lst = [i[0] for i in ast.literal_eval(string)]
print ", ".join(lst)


Решение не менее странное, чем вопрос. Можно было бы большой однострочной регуляркой, но eval нормально разруливает юникод-строки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
Одной строкой можно так:
[x[0].decode("UTF-8").encode("Windows-1251") for x in [(u'123',),(u'dadasd',),(u'hello seal',),(u'hello seal',),(u'seal',)]]

Или так:
list0 = [(u'123',),(u'dadasd',),(u'hello seal',),(u'hello seal',),(u'seal',)]
list0 = [x[0].decode("UTF-8").encode("Windows-1251") for x in list0]
list0 = ", ".join(list0)

неясно что вам нужно на выходе - список или строку
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы