2024-09-29 03:40:34 发布
网友
arrx=list(map(int,input().strip().split(',')))
我正在尝试上面的代码来获取'[7,5,1,6,3,4]'的输入,但是我得到了一个错误invalid literal for int() with base 10: '[7'
'[7,5,1,6,3,4]'
invalid literal for int() with base 10: '[7'
有人能给我建议一条出路吗
使用 list comprehension和 ^{},搜索\d+(1个或多个数字):
\d+
import re # '[7,5,1,6,3,4]' arr = [int(i) for i in re.findall(r'\d+', input())] print(arr) # [7, 5, 1, 6, 3, 4]
您得到的错误是由于对输入的分析不正确:您没有删除括号:[和]。从docs.strip()开始,不带参数意味着删除前导和尾随空格。和^ }在逗号上拆分(BTW,如果在输入字符串的中间有逗号,空白区域不被删除)。p>
[
]
.strip()
您可以使用.strip()通过指定字符来去除它们:
arrx=list(map(int,input().strip('[] ').split(',')))
请注意,如果您的输入实际上是一个JSON列表,则可以更可靠地将其解析为JSON:
import json arrx = json.loads(input())
如果是Python文本表达式,可以使用ast:
ast
import ast arrx = ast.literal_eval(input())
省省力气,使用^{}:
import ast a = ast.literal_eval(input()) print(a, len(a), a[0], "and whatever you want")
使用 list comprehension和 ^{} ,搜索
\d+
(1个或多个数字):您得到的错误是由于对输入的分析不正确:您没有删除括号: }在逗号上拆分(BTW,如果在输入字符串的中间有逗号,空白区域不被删除)。p>
[
和]
。从docs.strip()
开始,不带参数意味着删除前导和尾随空格。和^您可以使用
.strip()
通过指定字符来去除它们:请注意,如果您的输入实际上是一个JSON列表,则可以更可靠地将其解析为JSON:
如果是Python文本表达式,可以使用
ast
:省省力气,使用^{} :
相关问题 更多 >
编程相关推荐