可能重复:如何在Python中将字符串转换为整数?
大家好,
我试图将这个字符串整数从嵌套列表转换为整数.这是我的清单:
listy = [['+', '1', '0'], ['-', '2', '0']]
Run Code Online (Sandbox Code Playgroud)
我试图转换为这个:
[['+', 1, 2], ['-', 2, 0]]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的,但我的第二行代码取自问题中的一个答案如何在Python中将字符串转换为整数?
listy = [['+', '1', '0'], ['-', '2', '0']]
T2 = [list(map(int, x)) for x in listy]
print(T2)
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误:
ValueError: invalid literal for int() with base 10: '+'
Run Code Online (Sandbox Code Playgroud)
有没有办法在Python 3中解决这个问题?
你可以使用isdigit():
x = [['+', '1', '0'], ['-', '2', '0']]
x = [[int(i) if i.isdigit() else i for i in j] for j in x]
Run Code Online (Sandbox Code Playgroud)
输出:
[['+', 1, 0], ['-', 2, 0]]
Run Code Online (Sandbox Code Playgroud)
如果您想要一个适用于有符号整数的解决方案:
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]
Run Code Online (Sandbox Code Playgroud)
输出:
[['+', 1, 0], ['-', -2, 0]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
558 次 |
| 最近记录: |