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

如何在Python中从列表C生成指定格式的组合列表CM?

问题描述

给出列表C:

C = [9, 6, 10, 4, 8, 5, 7, 2, 3]

需要生成组合列表CM,格式要求如下:

CM=[[0,0,0,0,0,0,0,9,0], 
    [0,0,0,0,6,0,0,9,0], 
    [0,0,0,0,6,0,0,9,10], 
    [0,0,4,0,6,0,0,9,10], 
    [0,0,4,0,6,0,8,9,10], 
    [0,0,4,5,6,0,8,9,10], 
    [0,0,4,5,6,7,8,9,10], 
    [2,0,4,5,6,7,8,9,10], 
    [2,3,4,5,6,7,8,9,10]]
实现方案

规律分析

观察CM的生成逻辑:

  • CM的每个子列表长度固定为9,初始全为0;
  • 按原列表C的顺序,依次将元素填入固定目标索引,已填入的元素会保留在后续子列表中;
  • 元素与目标索引的映射关系:{2:0, 3:1, 4:2, 5:3, 6:4, 7:5, 8:6, 9:7, 10:8}(可从CM的最后一个子列表直接推导得出)

Python 代码实现

# 定义原列表
C = [9, 6, 10, 4, 8, 5, 7, 2, 3]
# 元素到目标索引的映射
element_index_map = {2:0, 3:1, 4:2, 5:3, 6:4, 7:5, 8:6, 9:7, 10:8}
# 初始化CM和当前列表
CM = []
current_list = [0]*9

# 遍历C中的每个元素,逐步构建CM
for num in C:
    # 将当前元素放到对应索引位置
    idx = element_index_map[num]
    current_list[idx] = num
    # 添加当前列表的副本到CM(避免后续修改影响已添加的子列表)
    CM.append(current_list.copy())

# 输出结果
print(CM)

代码说明

  • element_index_map:提前定义每个元素在子列表中的固定位置,确保填入位置准确;
  • current_list.copy():每次添加列表副本,防止后续修改current_list时改变已存入CM的子列表;
  • 遍历顺序严格遵循原列表C的顺序,保证生成的CM与要求完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:52:57