我有
list = [a, b, c, d]
和
numbers = [2, 4, 3, 1]
我想获取以下类型的列表:
new_list = [a, a, b, b, b, b, c, c, c, d]
这是我目前所拥有的:
new_list=[]
for i in numbers:
for x in list:
for i in range(1,i+1):
new_list.append(x)
最佳答案
这是使用 zip
、字符串乘法和 列表理解 实现此目的的一种方法:
lst = ['a', 'b', 'c', 'd']
numbers = [2 , 4, 3, 1]
r = [x for i, j in zip(lst, numbers) for x in i*j]
print(r)
# ['a', 'a', 'b', 'b', 'b', 'b', 'c', 'c', 'c', 'd']
使用Python时要注意名字的选择。像 list
这样的名称会导致内置列表函数不可用。
如果 lst
中的项目不是字符串,您可以简单地在 range
上使用嵌套理解,以复制列表中的项目。
关于python - 在列表中创建重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41811099/