如何将含简单数学表达式的字符串转为整数?Python新手求助
为什么会报错?
你第二个例子里的8-2是Python的算术表达式,运行时会直接计算出结果6;但第三个例子里的"8-2"是字符串,int()函数只能转换纯数字格式的字符串(比如"8"),没法解析带运算符的表达式字符串,所以抛出ValueError。
怎么得到预期输出?
方法1:用eval()快速实现
eval()可以执行字符串中的Python表达式,正好符合你的需求:
lista = ["8-2", "6-2"] lista = map(eval, lista) print(list(lista)) # 输出 [6, 4]
⚠️ 注意:如果这些字符串来自不可信的来源(比如用户输入),不要用eval(),因为它会执行任意Python代码,有安全风险。
方法2:手动解析表达式(更安全)
如果想避免安全问题,可以自己拆分字符串里的数字和运算符,手动计算:
lista = ["8-2", "6-2"] def compute(expr): # 拆分减号两边的数字 left, right = expr.split("-") return int(left) - int(right) lista = map(compute, lista) print(list(lista)) # 输出 [6, 4]
这个方法只处理减号的情况,更可控,适合新手理解。
内容的提问来源于stack exchange,提问作者anio
相关产品推荐
相关产品推荐

