我将以下字符串作为具有相同格式的行的文件的一部分。
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。
我正在努力获取这些特定值并将它们分配给变量。
答案 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]