请问基于Python如何对列表各元素按不同数量进行添加

对于列表a=[1,2,3,4,5],列表b=[3,2,4,1,3],想要形成新列表c=[3,2,2,4,4,4,1,1,1,1,3,3,3,3,3],
即a表示b中各元素在新列表c中的数量,请问使用Python改如何实现呢?

你可以使用列表推导式来实现这个功能



```python
if __name__ == '__main__':
    a = [1, 2, 3, 4, 5]
    b = [3, 2, 4, 1, 3]
    c = [j for i, j in zip(a, b) for _ in range(i)]
    print(c)

```
上述代码使用了列表推导式,循环迭代了元组 (i, j),其中 i 是 a 中的元素,j 是 b 中的元素。然后,使用内部的 for 循环生成 i个 j,并添加到结果列表中。

用嵌套的for就很容易实现


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

# 创建空列表 c
c = []

# 遍历列表 b
for i in range(len(b)):
    # 获取当前元素在列表 a 中的下标
    index = b[i] - 1
    # 获取当前元素在列表 a 中的数量
    num = a[index]
    # 将当前元素 num 个添加到列表 c 中
    c.extend([b[i]] * num)

print(c)  # 输出 [3, 2, 2, 4, 4, 4, 1, 1, 1, 1, 3, 3, 3, 3, 3]


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

for index in range(len(b)):
    for num in range(b[index]):
        c.append(a[index])

print(c)