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

Python 3.6:如何用一行简洁代码实现尺寸数组的映射生成?

一行代码实现映射数组生成

当然有超简洁的一行实现方案!结合Python的内置工具,就能轻松搞定这个需求:

import itertools

sizes = [5, 3, 1, 2]
mapping = list(itertools.chain.from_iterable([i] * size for i, size in enumerate(sizes)))

代码细节说明:

  • enumerate(sizes):同时遍历每个尺寸的索引i和对应的长度size,比如第一个迭代项是(0,5),第二个是(1,3),以此类推。
  • [i] * size:生成一个重复size次索引i的小列表,比如[0]*5会得到[0,0,0,0,0]。
  • itertools.chain.from_iterable(...):把所有小列表“平铺”成连续的迭代器,相比直接拼接列表,这种方式更节省内存,尤其适合处理大规模数据。
  • list(...):将迭代器转换为最终的列表格式。

如果不想导入额外模块,也可以用sum实现(注意:数据量较大时效率略低,因为每次求和都会创建新列表):

sizes = [5, 3, 1, 2]
mapping = sum(([i] * size for i, size in enumerate(sizes)), [])

两种写法都能生成你需要的[0, 0, 0, 0, 0, 1, 1, 1, 2, 3, 3],可以根据场景选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 23:32:31