【发布时间】:2021-01-23 00:48:09
【问题描述】:
我有两个列表,我正在尝试用它们创建一个大列表。 第一个列表只是给了我每个父母可以拥有的所有可能的孩子数量。将其视为标签。
num_of_children = [0, 1, 2, 3, 4, 5]
第二个列表告诉我有多少父母有多少孩子。例如,27 个父母有 0 个孩子,其中 22 个有 1 个孩子,以此类推。
number_of_parents = [27, 22, 30, 12, 7, 2]
使用这两个列表,我试图得到一个如下所示的列表:
parent_num_of_children = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5]
到目前为止,我能够做到这一点:
for number in num_of_children:
parent_num_of_children.extend([number] * number_of_parents[number])
我的问题是:是否有另一种方法可以在不使用 for 循环的情况下获取此列表,只需使用 range 函数或其他巧妙的方法?
感谢您的回答!
【问题讨论】:
-
num_of_children是否始终只是排序后的整数0到len(number_of_parents) - 1?或者这只是一个糟糕的示例和代码?
标签: python python-3.x