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

基于list_1的元素值对list_2分组,生成等长组合列表

问题描述

给定两个列表:

list_1 = [3, 5, 7, 2]

list_2 = [
          '1-CHA', '2-NOF', '3-INC',
          '4-CHA', '5-NOF', '6-NOF', '7-INC', '8-INC',
          '9-INC', '10-INC', '11-CHA', '12-NOF', '13-CHA', '14-CHA', '15-INC', 
          '16-INC', '17-INC'
         ]

需要生成final_list,要求:

  • final_list的长度与list_1一致
  • list_1中的每个元素对应list_2里对应数量的元素,用|连接后作为final_list的元素,最终结果如下:
final_list = [
              '1-CHA|2-NOF|3-INC',
              '4-CHA|5-NOF|6-NOF|7-INC|8-INC',
              '9-INC|10-INC|11-CHA|12-NOF|13-CHA|14-CHA|15-INC',
              '16-INC|17-INC'
             ]
解决方案

通过遍历list_1,按指定长度切片list_2,再用|连接切片元素即可实现需求,代码如下:

list_1 = [3, 5, 7, 2]
list_2 = [
          '1-CHA', '2-NOF', '3-INC',
          '4-CHA', '5-NOF', '6-NOF', '7-INC', '8-INC',
          '9-INC', '10-INC', '11-CHA', '12-NOF', '13-CHA', '14-CHA', '15-INC', 
          '16-INC', '17-INC'
         ]

final_list = []
start_idx = 0
for count in list_1:
    end_idx = start_idx + count
    # 切片并连接元素
    final_list.append('|'.join(list_2[start_idx:end_idx]))
    start_idx = end_idx

print(final_list)

代码说明

  1. 初始化start_idx作为切片起始位置标记
  2. 遍历list_1中的每个数字:
    • 计算切片结束位置end_idx = start_idx + count
    • 对list_2执行[start_idx:end_idx]切片,用'|'.join()将切片内元素拼接成字符串
    • 将拼接结果加入final_list
    • 更新start_idx为当前end_idx,作为下一次切片的起始位置

运行代码后即可得到目标final_list。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:45:43