ValueError:基数为10的int()的文本无效:“[2,7,11,15]”

2024-04-24 10:36:50 发布

您现在位置:Python中文网/ 问答频道 /正文

当我在我的电脑上运行这段代码时,它是正常的,但当我在leetcode上提交它时,它提供的运行时更像上面所说的。错误:

ValueError: invalid literal for int() with base 10: '[2,7,11,15]'
    if (int(arr[i])+int(arr[j]))==target and int(arr[i])!=int(arr[j]) and cnt<1:
Line 11 in <module> (Solution.py)

我该怎么修

arr=[]

arr=input()
arr=arr.split()

target=int(input())
cnt=0
for i,num in enumerate(arr):
    for j,num1 in enumerate(arr):

        if (int(arr[i])+int(arr[j]))==target and int(arr[i])!=int(arr[j]) and cnt<1:
            li=[]

            li.append(i)
            li.append(j)
            li=sorted(li)
            print(li)
            cnt=cnt+1;

Tags: and代码intargetforinputifli
1条回答
网友
1楼 · 发布于 2024-04-24 10:36:50

此错误表明转换失败,可能是在尝试将arr[...]强制转换为整数时

正如您在错误中看到的,您尝试将[2,7,11,15]转换为int,但立即失败。您在arr.split上的逻辑可能是错误的:您假设输入将使用空格(aka 2 7 11 15)给出,而它使用逗号分隔([2, 7, 11, 15]

对于这个确切的输入,您应该使用arr=arr.split(','),并删除开头的“[”和“]”&;绳子的末端。您可以通过只获取arr的子字符串来实现这一点

固定行:arr = arr[1:-1].split(',')

这应该包括导致问题的特定输入。话虽如此,我不确定它是否能涵盖所有案例,因为你没有给出完整的作业。这取决于您如何假设输入将被提供

相关问题 更多 >