对于列表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)