我正在创建一个函数,该函数可以评估字符串中的数学。首先,它获取字符串,然后将其转换为列表。
我尝试将整个数组转换为整数数组,但是当数组看起来像这样时,会遇到错误:["hello",1,"*",2]
,因为一切都不是数字。
我只想将数组["1","2","hello","3"]
中的整数转换为整数,所以数组变成[1,2,"hello",3]
这样,我就可以对整数进行数学运算,而不必像现在那样将它们视为字符串:
1 + 2
我得到12
作为输出。
我想要3
作为输出。
答案 0 :(得分:1)
您可以将list comprehension与str.isdigit()
和int()
结合使用:
ls = ["1", "2", "hello", "3"]
new_ls = [int(n) if n.isdigit() else n for n in ls]
print(new_ls)
输出:
[1, 2, 'hello', 3]
您还可以添加str.lstrip()
使其与负数一起使用:
ls = ["1", "-2", "hello", "-3"]
new_ls = [int(n) if n.lstrip('-').isdigit() else n for n in ls]
print(new_ls)
输出:
[1, -2, 'hello', -3]