#python #python_2x #python_27
На входе имеется массив «строк» (юникод–объектов): words = [u"привет", u"мир"] Моя задача — хитрым образом обработать их как одну строку: text = process_text(u' '.join(words)) Далее разбить обратно на слова и поместить в список: words = [word for word in text.split()] Проблема в том, что на последнем этапе после выполнения метода split, строки из u"привет" и u"мир" превращаются в u'\u043f\u0440\u0438\u0432\u0435\u0442' и u'\u043c\u0438\u0440', но мне необходимо иметь исходное представление. Каким образом этого добиться? Обновление Для выявления проблемного места ставил вывод строки в консоль. Перед process_text, строка выводится в нужном формате, после — тоже, проблема появляется только после метода split. Обновление 2 На всех этапах тип переменной text –. Если сравнить «человеческое представление» и юникод–строку "привет", то сравнение работает верно. На данной стадии решения вопроса хотелось бы все–таки как–то получить не юникод–строку, а человеческое представление.
Ответы
Ответ 1
Проблемы с выводом, как оказалось, заключается в том, что в Python 2 необходимо выводить именно строку, а не массив (в Python 3 вывод массива через print работает превосходно). То есть надо не print(words) Надо print(u' '.join(words)) Тогда выводимая строка содержит "привет мир".
Комментариев нет:
Отправить комментарий