Строка для отображения при отсутствии запятой в строке - PullRequest
0 голосов
/ 17 декабря 2018

Я как бы нарисовал себя в углу, преобразовав векторы из кадра данных в str.Мои векторы теперь выглядят так: [ -9.1676396 -171.8196878].Проблема в том, что они как-то потеряли запятую в середине, раньше было так [ -9.1676396, -171.8196878].Затем, когда бы мне ни понадобилось преобразование списка, я мог сделать:

literal_eval('[ -9.1676396, -171.8196878]')

Однако это больше не работает, так как я потерял запятую.У меня вопрос, как я могу преобразовать строку, как это в списке?Я также должен учитывать тот факт, что некоторые могут отличаться по расстоянию.Вот тип изменений, которые я мог иметь:

[ -9.1676396 -171.8196878 ]
[1.2904753 103.8520359]
[   21.2160437 -157.975203 ]

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Если у вас есть строка типа:

[ -9.1676396 -171.8196878 ]

Она может быть легко преобразована в список чисел с помощью следующего кода:

[float(x) for x in '[ -9.1676396 -171.8196878]'.replace('[','').replace(']','').split()]

Этот код удаляет [ и ]символы, разделяет строку с пробелом в качестве разделителя и преобразует результирующие строки в числа с плавающей точкой.

0 голосов
/ 17 декабря 2018

Похоже, у вас больше нет строки, просто массив.

Я предлагаю вам использовать регулярное выражение

 import re

 pattern =  "/[\s" #replace spaces on outside of numbers if any
 replace = "" # i.e nothing
 re.sub(pattern, replace)

Затем повторите то же самое, но шаблон регулярного выражения будет

 re.sub([0-9]*\s[0-9]* , ",")
...