【发布时间】:2020-06-30 15:10:00
【问题描述】:
任务
我有一个有大小的数组
sizes = [5, 3, 1, 2]
并根据我要创建以下数组的大小
mapping = [0, 0, 0, 0, 0, 1, 1, 1, 2, 3, 3]
解决方案
我的第一次尝试
mapping = []
ctr = 0
for i in range(len(sizes)):
for j in range(sizes[i]):
mapping.append(i)
ctr += 1
短版
mapping = [[i for _ in range(sizes[i])] for i in range(len(sizes))]
mapping = list(itertools.chain(*mapping))
问题
单行版本?
是否有可能用简洁的代码在一行中完成?
【问题讨论】:
标签: python python-3.x mapping python-3.6