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

如何实现每次从列表L取n个、列表M取1个元素按序返回

实现方案

你提供的两个列表长度刚好适配需求:M总长度为5,对应5次取值操作;L总长度为15,刚好等于1+2+3+4+5的和,不会出现元素不足或者剩余的情况。
核心逻辑:用指针记录L当前的取值位置,按指定的n值依次取对应数量的L元素,再取对应位置的M元素拼接即可。

代码实现(Python)

L = [4743, 20517, 13104, 14330, 18597, 13311, 946, 7696, 3357, 509, 10271, 17032, 512, 8859, 16265]
M = [14925, 24993, 34483, 12033, 23966]

l_ptr = 0
result = []
# 按顺序取n=1到n=5个L元素,同时对应取M的元素
for n, m_val in zip(range(1, 6), M):
    result.extend(L[l_ptr:l_ptr+n])
    result.append(m_val)
    l_ptr += n

# 逐行输出和示例格式一致的结果
for item in result:
    print(item)

输出验证

运行后前5行输出和你给出的示例完全匹配:

4743
14925
20517
13104
24993

如果需要自定义每次取的n值(无需固定1到5的顺序),只要保证自定义n列表的长度和M一致、所有n的总和和L的长度一致即可,示例如下:

# 自定义每次取的n值,可按需调整
n_list = [2,3,1,5,4]
l_ptr = 0
result = []
for n, m_val in zip(n_list, M):
    result.extend(L[l_ptr:l_ptr+n])
    result.append(m_val)
    l_ptr += n

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:09:01