字符串中缺少逗号时要列出的字符串
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 作为分隔符拆分行并将生成的字符串部分转换为浮点数。
我通过将向量从数据帧转换为 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 作为分隔符拆分行并将生成的字符串部分转换为浮点数。