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

如何按指定模式将动态长度的偶数列表分割为子列表?

解决方案

先从示例中提炼明确的分割规则:
假设原列表长度为n(必须是4的倍数,因为要分割为n/4个各含4元素的子列表),计算k = n // 4。每个子列表对应原列表中从索引j开始,以k为步长取4个元素(j的取值范围是0到k-1)。

代码实现(Python)

def split_list(a):
    n = len(a)
    # 校验输入合法性:长度必须是4的倍数
    if n % 4 != 0:
        raise ValueError("列表长度必须是4的倍数")
    k = n // 4
    # 生成每个子列表:j从0到k-1,取a[j::k](刚好4个元素)
    return [a[j::k] for j in range(k)]

验证示例

  1. 第一个测试用例:
a = [311, 7426, 3539, 2077, 13, 558, 288, 176, 6, 196, 91, 54, 5, 202, 116, 95]
result = split_list(a)
# 输出结果与需求完全匹配:
# [[311, 13, 6, 5], [7426, 558, 196, 202], [3539, 288, 91, 116], [2077, 176, 54, 95]]
  1. 第二个测试用例:
a = [311, 7426, 3539, 2077, 1 ,13, 558, 288, 176, 1, 6, 196, 91, 54, 1, 5, 202, 116, 95, 1]
result = split_list(a)
# 输出结果与需求完全匹配:
# [[311, 13, 6, 5], [7426, 558, 196, 202], [3539, 288, 91, 116], [2077, 176, 54, 95], [1, 1, 1, 1]]

动态列表适配

代码会根据当前列表长度实时计算步长k,只要列表长度始终保持为4的倍数,无论增删元素后,直接调用split_list即可得到正确结果,无需修改核心逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:24:31