繁体   English   中英

对字符串列表执行算术运算

[英]Performing arithmetic operation on string list

我使用python从csv文件中提取数据。 csv文件中的数据采用以下格式:

a=(10100*b)+(-1289201*c)+(12312312*d)

我编写了代码以从csv文件中提取它。

ar=[]
ins = open(log,"r")
for line in ins:
        ar.append(line)
ins.close()

所以, ar[0]='a=(10100*b)+(-1289201*c)+(12312312*d)'

现在,我需要用特定的浮点变量替换b,c和d的值。

所以,我做了以下事情:

map = [ ('b','10'), ('c', '20'), ('d','100') ]
for k, v in map: 
 ar[0] = ar[0].replace(k,v)

现在的问题是我无法对最终结果进行任何算术运算,也就是说,输出采用以下格式。

`ar[0]='a=(10100*10)+(-1289201*20)+(12312312*100)'`

是否有我可以在下面的列表格式进行了一些算术运算的方式。 我试图删除列表,但这没有帮助。

>>> s = 'a=(10100*10)+(-1289201*20)+(12312312*100)'
>>> index = s.find('=') + 1
>>> eval(s[index:])

上面的答案非常好。 这是另一种减少1行的方法:

>>> s = 'a=(10100*10)+(-1289201*20)+(12312312*100)'
>>> exec s

你可以查看输出:

>>> a
1205548180

exec语句用于执行表达式,而不仅仅是求值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM