首页 > 解决方案 > 将值添加到与另一个列表中显示的次数相对应的列表中

问题描述

如何简化和自动化以下语法,以便我可以实现:

假设:

  1. x 和 y 的长度总是相同的
  2. x 和 y 中的值的数量会改变

客观的:

  1. 根据 x 中显示的相应时间数打印 y 中的值

预期输出>>> ['a', 'a', 'b', 'b', 'b', 'c']

v = len(x)
x = [2, 3, 1]
y = ['a', 'b', 'c']
z = []

for i in range(x[0]):
    z.append(y[0])
for i in range(x[1]):
    z.append(y[1])
for i in range(x[2]):
    z.append(y[2])

#如果x和y都有第四个值,那么它应该重复上面的步骤#

print(z)

标签: pythonfor-loop

解决方案


看看使用zip()函数

z = []
for amount, item in zip(x, y):
  for _ in range(amount):
    z.append(item)

或者,更短

z = []
for amount, item in zip(x, y):
  z.extend(item for _ in range(amount))

推荐阅读