python - 将字符串列表(使用空格而不是逗号)转换为列表列表
问题描述
我有以下字符串:
'[[ 0.03694573 0.01084746 0.01306414 0.00499198 0.00307188]\r\n [ 0.03780498 0.02610241 0.00967986 0.02228694 -0.01153102]\r\n [ 0.03837708 0.02111896 0.01370878 -0.00136839 0.01906253]\r\n [ 0.03490672 -0.02791057 0.08824896 -0.01991765 0.01964361]\r\n [ 0.0811892 0.28361901 0.21539196 -0.00259571 0.28737829]\r\n [ 0.20022041 0.16184418 0.25939959 0.00546446 0.36415219]\r\n [ 0.22920615 0.27439767 0.36991198 0.00624375 0.39911759]]'
如您所见,它包含一个列表列表。但是,列表中的每个元素都由制表符而不是逗号分隔,因此ast.literal_eval()
不起作用。有谁知道如何最好地将其转换为列表列表?
BJR </p>
解决方案
修改字符串,直到它可以被literal_eval
. 基本上这意味着在需要的地方添加一个“,”。
如果您的字符串被调用data
:
import ast
data = data.replace(' ', ',').replace('\r\n ', ',')
result = ast.literal_eval(dat2)
现在result
将包含您的列表列表。
我不确定那里是否有空格或制表符。如果您有标签,则必须替换' '
为'\t\t'
.
推荐阅读
- string - 如何从文本文件中读取文本而不检索“ß”或“ä”等字符?
- c# - http 不使用 IIS 10 中的整个 URL 的 Url Rewrite 重定向到 https(包含参数的 URL)
- c# - 如何使用 RestSharp 发送带有动态属性的 JSON?
- python - 在字符串中转义 \u
- java - Android UDP Socket IOException: sendto failed: EPERM (Operation not allowed)
- typescript - 在 TypeScript 中获取函数参数名称和类型
- pdflib - PDFlib - 编辑已结束/关闭的页面
- java - 找不到主类(Maven Mojo 插件错误)
- c# - 如何将 DataSet 转换为 StringBuilder
- java - Hibernate.unproxy 有副作用吗?