在删除Python中的字符后,解析回int是否有问题?

在删除Python中的字符后,解析回int是否有问题?,python,Python,下面是给我带来问题的代码: newI = int(str(i).replace(char, "")) newJ = int(str(j).replace(char, "")) 我在第一次作业中就遇到了这个问题i和j在此运行之前都是两位整数,如果将它们解析为字符串时在其中任何一个中找到了值,则已为char分配了一个值。例如,如果i是27而j是73,我希望取消7s。所以我解析到字符串,找到了字符,现在我正试图在删除字符的情况下解析回int。我发现了错误 ValueError:基数为10的int()

下面是给我带来问题的代码:

newI = int(str(i).replace(char, ""))
newJ = int(str(j).replace(char, ""))
我在第一次作业中就遇到了这个问题
i
j
在此运行之前都是两位整数,如果将它们解析为字符串时在其中任何一个中找到了值,则已为
char
分配了一个值。例如,如果
i
27
j
73
,我希望取消
7
s。所以我解析到字符串,找到了字符,现在我正试图在删除字符的情况下解析回int。我发现了错误

ValueError:基数为10的int()的文本无效:“”

有人能给我一些提示吗?这里还有一些代码:

for j in range(10, i):
    for char in str(j):
        if char in str(i):
            newI = int(str(i).replace(char, ""))
            newJ = int(str(j).replace(char, ""))

只需将计数设置为1:

"55".replace("5","", count=1)

在您的示例中,有两个嵌套的
for
-循环。使用集合交点将更有效,特别是如果您正在执行大量的
i,j
值:

strI = str(i)
strJ = str(j)

# remove any similar characters (once)
for c in set(str(i)) & set(str(j)):
    strI = strI.replace(c, "", count = 1)
    strJ = strJ.replace(c, "", count = 1)

newI = int(strI)
newJ = int(strJ)

“我把问题写在第三行”那你为什么只发了两行?基于这个错误,我想说您将一个空字符串传递给
int
。您可以显示更多的代码吗?显示输入的打印总是有帮助的。如果没有更多的信息,我真的很难判断出哪里出了问题,几天前我把水晶球弄丢了。对不起,第3行是个打字错误。我本想打1的。我现在要添加一些代码。空字符串不是有效的int文本。好的,假设
I
27
char
“2”
。不应该
str(i).replace(char,”
返回
“7”
,然后可以解析回一个整数吗?我正要回来说我已经弄明白了。谢谢。只是好奇,如果i==j,你希望你的输出是什么?