使用列表理解:output_age = [i for l in ([a]*f for a, f in zip(age, frequency)) for i in l]#[19, 19, 20, 21, 22, 22, 22, 23, 23, 24, 25]为什么?我们首先zip将age和frequency列表放在一起,以便我们可以一致地迭代它们。如此:for a, f in zip(age, frequency): print(a, f)给出:19 220 121 122 323 224 125 1然后我们要重复每个元素,a,,,,,,,,,,,,,,,,,,, ,,,f。这可以通过创建一个列表并将其相乘来完成。就像:[4] * 3#[4, 4, 4]然后我们需要解包这些值,以便我们将此表达式包装在生成器中(用括号表示)并对其进行迭代。这会使列表变平。请注意,有其他方法可以实现这一点(例如使用itertools.chain.from_iterable)。另一种方法是a通过迭代range对象而不是乘以列表来重复数字, 。这种方法看起来像:output_age = [a for a, f in zip(age, frequency) for _ in range(f)]#[19, 19, 20, 21, 22, 22, 22, 23, 23, 24, 25]