如何将列表中的整数转换为int()?

时间:2019-05-20 14:55:24

标签: python string list math int

我正在创建一个函数,该函数可以评估字符串中的数学。首先,它获取字符串,然后将其转换为列表。

我尝试将整个数组转换为整数数组,但是当数组看起来像这样时,会遇到错误:["hello",1,"*",2],因为一切都不是数字。

我只想将数组["1","2","hello","3"]中的整数转换为整数,所以数组变成[1,2,"hello",3]

这样,我就可以对整数进行数学运算,而不必像现在那样将它们视为字符串:

1 + 2

我得到12作为输出。 我想要3作为输出。

1 个答案:

答案 0 :(得分:1)

您可以将list comprehensionstr.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]