Python搜索两个数字的字符串,分配给变量

时间:2018-02-02 04:49:17

标签: python

我将以下字符串作为具有相同格式的行的文件的一部分。

CONST robtarget robttarget1:=[[-42277.480909368,-4997.36320197,2332.380745999],[0.347787091,-0.799426288,0.217080241,0.439133144],[0,0,0,0],[-35700.0,180.0,2200.000095367,0,9E9,9E9]];

我需要访问两个特定的数字并对它们进行预先数学运算。 -35700.0和180.0。

我正在努力获取这些特定值并将它们分配给变量。

2 个答案:

答案 0 :(得分:0)

只需删除不是值的部分行,并使用eval将其余部分作为python变量。

以下行会在' ='处理您的字符串。使用split的字符(所以你会得到2个字符串)。 然后它将获得你的字符串的第二部分(在' ='之后开始的那部分),删除最后的&#39 ;;'字符并使用eval来解释整个事情:

result = eval(s.split('=')[1][:-1])

现在,您将获得一个列表,您可以轻松地从中提取数字

答案 1 :(得分:0)

您可以通过" ="拆分字符串。然后使用ast模块将字符串列表转换为python列表对象,并使用列表索引来获取所需的值

<强> EX:

import ast
A = "CONST robtarget robttarget1:=[[-42277.480909368,-4997.36320197,2332.380745999],[0.347787091,-0.799426288,0.217080241,0.439133144],[0,0,0,0],[-35700.0,180.0,2200.000095367,0,9E9,9E9]];"
A = A.split("=")[1].replace(";", "")   #Remove any non python string.
A = ast.literal_eval(A)    #Convert string object to list object
print A[-1][0:2]           # I have used slice to fetch the required value

<强>输出:

[-35700.0, 180.0]