You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python技术问题:如何编写函数提取元组的奇数索引元素?

搞定提取元组奇数位置元素的问题

嘿,我瞅出问题在哪啦!你现在写的oddTuples函数是在挑元素本身是奇数的项,而不是按元素在元组里的索引位置来提取,这就是结果和你预期不一样的原因~

先理清楚需求和当前代码的差异

你传入的元组((1), (2), (2), (23), (3), (4))其实就是(1, 2, 2, 23, 3, 4)。你想要的是提取从1开始数的奇数位置元素(第1、3、5个),对应Python里从0开始的索引0、2、4;但你的代码现在筛选的是值为奇数的元素(1、23、3),所以输出自然不对啦。

给你两种修正方案,都能达到预期

方案1:遍历索引判断(直观易懂)

直接遍历元组的每个索引,判断是不是你要的位置,把符合条件的元素拼进结果元组:

def oddTuples(aTup):
    result = ()
    # 遍历每个元素的索引
    for idx in range(len(aTup)):
        # 这里取的是从1开始数的奇数位置(对应0-based的偶数索引)
        if idx % 2 == 0:
            result += (aTup[idx],)
    return result

方案2:用Python切片(简洁到飞起)

Python的元组切片语法[::2]可以直接帮你取从索引0开始、步长为2的元素,完美匹配你的需求,一行代码搞定:

def oddTuples(aTup):
    return aTup[::2]

测试一下

现在调用print(oddTuples((1, 2, 2, 23, 3, 4))),不管用哪个方案,都会输出你想要的(1, 2, 3)~

要是你说的“奇数索引”是指从0开始的奇数索引(也就是第2、4、6个元素),那只要把切片改成aTup[1::2],或者循环里判断idx % 2 == 1就可以啦。

内容的提问来源于stack exchange,提问作者code_conundrum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:55:55