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

Python列表切片问题:如何实现每3个元素提取第2个元素

嘿,我来帮你搞定这个问题!其实Python里实现这个需求非常简单,甚至比你想的分组方法更直接~

最简洁的解法:利用列表切片

你要的是每3个元素里的第2个,对应的索引其实是1,4,7,10...,刚好是从索引1开始,每次步长为3的位置。Python的列表切片语法直接就能搞定:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
result = my_list[1::3]
print(result)  # 输出: [2,5,8,11]

这个方法完全不用考虑列表长度是不是3的倍数——比如如果你的列表是[1,2,3,4,5],它会自动返回[2,5],完美适配所有情况。

符合你分组思路的解法

如果你更倾向于先分组再提取的逻辑,也可以手动循环分组,然后判断每组是否有足够的元素来取第二个:

def pick_second_in_triples(lst):
    output = []
    # 从0开始,每次跳3个位置,遍历所有分组的起始点
    for start in range(0, len(lst), 3):
        # 截取当前组的元素
        current_group = lst[start:start+3]
        # 如果组里至少有2个元素,就把第二个加进去
        if len(current_group) >= 2:
            output.append(current_group[1])
    return output

# 测试一下
test_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
print(pick_second_in_triples(test_list))  # 输出: [2,5,8,11]

顺便说一句,你提到的split()是字符串的方法,确实不能直接用在列表上,上面这两种方法都是Python处理列表的常规操作哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:46:08