首页 > 解决方案 > 将字符串转换为数字时出现问题

问题描述

我在将字符串转换为整数时遇到问题,任何机构都可以帮助我这样做或任何替代方法吗?

x=int("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")

ValueError: invalid literal for int() with base 10: '4 5 29 54 4 0 -214 542 -64 1 -3 6 -6'

标签: pythonstringinteger

解决方案


ValueError:int() 的无效文字,基数为 10:'4 5 29 54 4 0 -214 542 -64 1 -3 6 -6'

ValueError异常清楚地表明它无法将您的 str 转换为以 10 为底的 int。

int()说:

如果 x 不是数字或给出了 base,则 x 必须是字符串、字节或 bytearray 实例,表示以基数为基数的整数文字。

x = int("2")本来可以的。但是,您的字符串包含一个int. 您不能将您的转换strintusingint构造函数。

您需要使用列表推导映射来获取 int 列表,然后对其进行操作。

使用list comprehension

s = "4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"
li = [int(i) for i in s.split()]
print(li)

使用map

s = "4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"
print(list(map(int, s.split())))

输出:

[4, 5, 29, 54, 4, 0, -214, 542, -64, 1, -3, 6, -6]

编辑:

s = "4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"
li = [int(i) for i in s.split()]
print(max(li), min(li))

输出:

542 -214

推荐阅读