如何在Python3中将字符串数列表转换为int数?

可能重复:
How to convert strings into integers in Python?

大家好,

我试图将这个字符串整数从嵌套列表转换为整数.这是我的清单:

listy = [['+', '1', '0'], ['-', '2', '0']]

我试图转换为这个:

[['+', 1, 2], ['-', 2, 0]]

这是我到目前为止所尝试的,但我的第二行代码取自问题How to convert strings into integers in Python?中的一个答案

listy = [['+', '1', '0'], ['-', '2', '0']]
T2 = [list(map(int, x)) for x in listy]
print(T2)

但它给了我一个错误:

ValueError: invalid literal for int() with base 10: '+'

有没有办法在Python 3中解决这个问题?

最佳答案 你可以使用
isdigit()

x = [['+', '1', '0'], ['-', '2', '0']]    
x = [[int(i) if i.isdigit() else i for i in j] for j in x]

输出:

[['+', 1, 0], ['-', 2, 0]]

如果您想要一个适用于有符号整数的解决方案:

x = [['+', '1', '0'], ['-', '-2', '0']]

def check_conversion(x):
  try:
    return int(x)
  except:
    return x

x = [list(map(check_conversion, i)) for i in x]

输出:

[['+', 1, 0], ['-', -2, 0]]
点赞