gpt4 book ai didi

python - 根据另一个列表中的元素重复一个列表中的元素

转载 作者:行者123 更新时间:2023-12-02 05:03:36 25 4
gpt4 key购买 nike

给出以下列表:

a = [0, 5, 1]
b = [1, 2, 1]

我想按照 [b] 中相应位置的编号重复 [a] 的每个元素,以产生以下结果:

[0, 5, 5, 1]

即0 出现 1 次,5 出现 2 次,1 出现 1 次。

最佳答案

In [7]: a = [0, 5, 1]

In [8]: b = [1, 2, 1]

In [9]: list(itertools.chain(*(itertools.repeat(elem, n) for elem, n in zip(a, b))))
Out[9]: [0, 5, 5, 1]

In [10]: b = [2, 3, 4]

In [11]: list(itertools.chain(*(itertools.repeat(elem, n) for elem, n in zip(a, b))))
Out[11]: [0, 0, 5, 5, 5, 1, 1, 1, 1]

这里的部分如下:

  • itertools.repeat(elem, n) - 重复 elem n 次
  • zip(a, b) 从两个列表中创建一个二元组列表,将每个元素与另一个列表中的相应元素配对。这为您提供了在用例中需要传递给 itertools.repeat 的确切内容。
  • itertools.chain - 将迭代器的结果列表展平为单个值列表。您可以像我一样使用 chain(*iterable) ,也可以像 Martijn Peters 那样使用 chain.from_iterable(iterable)

关于python - 根据另一个列表中的元素重复一个列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com