#python #строки
Изначально имеется строка >>> string = '50.6,383,149,1.9,786, 4 -4, [Ne]3s²3p², DIA,5.43' которая была разбита в лист по разделителю "," >>> print(re.split(r',', string)) ['50.6', '383', '149', '1.9', '786', ' 4 -4', ' [Ne]3s\xc2\xb23p\xc2\xb2', ' DIA', '5.43'] Элемент [Ne]3s²3p² был переведен в байт код '[Ne]3s\xc2\xb23p\xc2\xb2'. Его можно успешно принтовать в человеческом виде >>> print('[Ne]3s\xc2\xb23p\xc2\xb2'.decode('utf-8')) [Ne]3s²3p² А вот возможно перевести его в человекочитаемый вид и вписать обратно в список?
Ответы
Ответ 1
У вас не байт-код (содержимое *.pyc файлов), а просто текстовое представление объекта типа str в Питоне, возвращаемое функцией repr(). Вы его видите, потому что по умолчанию при печати списка в Питоне вызывается repr() для каждого элемента списка. Если вы хотите другой результат, то форматируйте список, возвращаемый функцией re.split() самостоятельно, например, чтобы напечатать каждый элемент списка на отдельной строчке: for элемент in ваш_список: print(элемент) Дополнительно, результат намекает что вы используете Питон 2. В этом случае, либо добавьте на самом верху from __future__ import unicode_literals или явно используйте u"" префикс, чтобы создать Юникодную строчку (из константы в исходном коде) вместо использования байт, иначе вы можете кракозябы получить при печати.
Комментариев нет:
Отправить комментарий