gpt4 book ai didi

python - 从python中的2个列表中创建一个重复元素列表

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:16 27 4
gpt4 key购买 nike

作为 python 的新手,这是我的问题。给定两个列表:

a = [3, 4] 
b = [5, 2]

我想创建一个新列表,其中包含重复 n 次的第一个列表的项目,其中 n 是第二个列表中的相应元素。所以我想要这样的输出:

c = [3,3,3,3,3,4,4]

其中 3 重复 5 次,4 重复 2 次,依此类推。我当前的代码看起来像这样

for item,no in zip(a,b):
print(str(item)*no)

这让我:

33333
44

我想弄清楚如何从我当前的阶段获得我想要的输出。任何帮助,将不胜感激。

我也在想也许这可以通过列表理解来完成,但我无法为它想出 python 代码。

最佳答案

一个简单的列表理解就可以了:

>>> a = [3, 4]
>>> b = [5, 2]
>>> [c for n, m in zip(a, b) for c in [n]*m]
[3, 3, 3, 3, 3, 4, 4]

如果您关心内存效率(例如对于大型 m),那么您可以使用 itertools.repeat() 来避免中间列表:

>>> import itertools as it
>>> [c for n, m in zip(a, b) for c in it.repeat(n, m)]
[3, 3, 3, 3, 3, 4, 4]

关于python - 从python中的2个列表中创建一个重复元素列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41126389/

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