此问题在此处已有答案:
How do I check if a string represents a number (float or int)?(40个答案)
How can I collect the results of a repeated calculation in a list, dictionary etc. (or make a copy of a list with each element modified)?(2个答案)
1分钟前关闭。
可能重复:How to convert strings into integers in Python?
大家好
我正在尝试将这个字符串integers从嵌套列表转换为integers。这是我的列表:
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中解决这个问题?
3条答案
按热度按时间soat7uwm1#
您可以使用
isdigit()
:输出:
如果你想要一个解决方案,也适用于有符号整数:
输出:
fnvucqvd2#
你得到ValueError,因为
'+'
和'-'
不能转换为int
类型。所以你需要检查要转换的每个字符串的类型和/或内容。下面的示例检查子列表中的每个项目是否只包含数字0-9:332nm8kg3#
您的解决方案的问题是,两个内部数组中的第一个项都不是数字,因此当您尝试转换它们时,它会给您这个错误。
如果你不知道非数字的位置,你可以这样做:
如果它总是第一个不是数字的,那么你可以这样做: