Skip to main content
 首页 » 编程设计

python之如何将文本列表乘以整数列表并得到一长串文本

2025年05月04日22lexus

这是针对 Python 3 的。我有两个列表:

lista = ['foo', 'bar'] 
listb = [2, 3] 

我想得到:

newlist = ['foo', 'foo', 'bar', 'bar', 'bar'] 

但是我卡住了。如果我尝试:

new_list = [] 
for i in zip(lista, listb): 
    new_list.append([i[0]] * i[1]) 

我得到:

[['foo', 'foo'], ['bar', 'bar', 'bar']] 

我知道这行得通,但我并不总是知道每个列表的内容。

new_list = ['foo'] * 2 + ['bar'] * 3 

提前致谢!

请您参考如下方法:

您可以将列表理解与以下一个衬里一起使用:

new_list = [x for n,x in zip(listb,lista) for _ in range(n)] 

代码的工作原理如下:首先我们生成一个 zip(listb,lista),它生成 (2,'foo'), (3,'bar'), 的元组。 .. 现在,对于这些元组中的每一个,我们都有第二个 for 循环,该循环迭代 n 次(for _ in range(n)),因此我们多次将 x 添加到列表中。

_是一个变量,通常用来表示_携带的值并不重要:它只是因为我们需要在for循环中使用一个变量强制迭代。