字符串中缺少逗号时要列出的字符串

String to list when missing comma in string

我通过将向量从数据帧转换为 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 ]

看起来你不再有字符串了,只是一个数组。

我建议你使用正则表达式

 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]* , ",")

如果你有这样的行:

[ -9.1676396 -171.8196878 ]

可以通过以下代码轻松转换为浮动列表:

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

此代码删除 [] 符号,以 space 作为分隔符拆分行并将生成的字符串部分转换为浮点数。