如何编写oddTuples函数接收tuple输入并返回仅保留奇数位元素的新tuple
你的代码存在以下问题:
- 函数名不符合要求:题目指定函数名为
oddTuples,你的代码定义的是oddTuple,少了末尾的s,命名不匹配会导致用例调用失败。 - 变量未初始化:代码中直接调用
d.append(),但没有提前定义变量d,运行会直接抛出NameError异常。 - 索引起始值错误:Python序列索引从0开始,题目要求取第1、3、5个元素(对应索引0、2、4),你初始索引设为1,取到的是第2、4、6个元素,和要求完全相反。
- 没有遍历逻辑:你用了单次
if判断而非循环,最多只会执行一次取值操作,无法遍历输入的整个tuple,输入长度大于2时必然漏元素。 - 输出不符合要求:题目要求函数返回新的tuple,你的代码是直接打印结果,且
d如果是列表类型还需要转换为tuple类型才能符合返回值要求。
正确实现参考
简洁切片实现
def oddTuples(tup): # 步长设为2,直接取索引为0、2、4...的元素 return tup[::2]
遍历实现(和题目要求的逻辑对齐)
def oddTuples(tup): res = [] for index in range(len(tup)): # 索引为偶数时对应第一个、第三个、第五个...元素 if index % 2 == 0: res.append(tup[index]) return tuple(res)
内容的提问来源于stack exchange,提问作者straf1kx
相关产品推荐
相关产品推荐

