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

如何使用递归算法拆分列表中的奇数与偶数元素

如何使用递归对列表中的奇数和偶数元素进行拆分?

首先明确函数实现要求:输入一个数字列表,返回嵌套列表,第一个子列表存储原列表中的所有奇数(顺序和原列表保持一致),第二个子列表存储原列表中的所有偶数,示例调用结果如下:

oddevenseparator([1]) => [[1], []]
oddevenseparator([2]) => [[], [2]]
oddevenseparator([1,2,3,4,5,6])=> [[1,3,5],[2,4,6]]

实现思路

递归的核心逻辑是把大问题拆解为「处理当前单个元素」+「递归处理剩余子列表」两个部分:

  • 递归终止条件:当输入列表为空时,直接返回[[], []],表示没有元素需要拆分
  • 递归处理逻辑:
    1. 先取出当前列表的第一个元素,把剩余的子列表传入oddevenseparator,得到已经拆分完成的结果[已拆分奇数列表, 已拆分偶数列表]
    2. 判断当前第一个元素的奇偶性:奇数就插入到已拆分奇数列表的头部,偶数就插入到已拆分偶数列表的头部,保证最终元素顺序和原列表一致
    3. 返回处理后的嵌套列表即可

可运行Python实现代码

def oddevenseparator(lst):
    # 递归终止条件
    if not lst:
        return [[], []]
    # 递归处理剩余子列表
    odd, even = oddevenseparator(lst[1:])
    # 处理当前元素
    if lst[0] % 2 == 1:
        return [[lst[0]] + odd, even]
    else:
        return [odd, [lst[0]] + even]

直接运行上述代码,即可完全匹配给出的三个示例输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:06:04