在Python 3中将字符串'2 * 2 * 3 * 5'转换为整数

时间:2014-04-15 17:22:10

标签: python-3.x

我正在使用python 3,我想转换像

这样的字符串
  

' 2 * 2 * 3 * 5'

进入整数

  

2 * 2 * 3 * 5 = 60

我有一个包含很多字符串的字典,我需要将它们用作整数。有没有快速的方法来做到这一点? 我曾经考虑过使用拆分,但我在这方面遇到了一些麻烦。

感谢您的回答。

2 个答案:

答案 0 :(得分:3)

如果可以使用eval(即必须仔细检查您的数据以防止意外执行代码),您可以尝试:

str = '2*2*3*5'

print eval(str)

答案 1 :(得分:2)

如果所有表达式都重复乘法,你可以这样做(没有eval):

>>> from functools import reduce
>>> from operator import mul
>>> reduce(mul, [int(term) for term in '2*2*3*5'.split('*')])
60