Python取列表偶数索引元素在Snakify平台报ValueError错误求助
问题排查与修复
核心错误1:逻辑与需求不符
你当前的代码逻辑完全不匹配「提取偶数索引对应元素」的需求:
- 你现在判断的是元素本身的值是否为偶数,而非元素对应的索引是否为偶数
- 你直接用元素值作为下标去取列表内容,会触发索引越界错误:比如输入元素包含5时,你的列表长度只有5,最大合法索引为4,取
a[5]必然报错
核心错误2:输入处理异常(对应你遇到的ValueError报错)
你给出的报错是int()函数尝试直接转换完整的带空格字符串'1 2 3 4 5'导致的,说明你提交到Snakify的代码大概率和你贴的本地测试代码不一致:你提交的版本可能写了numbers = int(input()),直接尝试把整行输入转整数,跳过了按空格分割的步骤,才会触发这个转换错误。
修复后代码
# 读取输入生成数字列表 a = [int(n) for n in input().split()] # 筛选索引为偶数的元素(索引从0开始计数) b = [val for idx, val in enumerate(a) if idx % 2 == 0] # 输出结果,如果平台要求空格分隔的数字而非列表格式,把下方print替换为print(' '.join(map(str, b))) print(b)
补充说明
如果题目要求的「偶数索引」是从1开始计数的第2、4、6位,把筛选条件改成idx % 2 == 1即可。
内容的提问来源于stack exchange,提问作者jfnotk
相关产品推荐
相关产品推荐

