有列表a=[1,2,3,5,3,6,7,1],列表b=[0,2,4],列表c=[x,y,z],b中的元素代表对应于a中元素的位置(即0表示a中位置为0的元素),c中的元素代表a中位置为0,2,4的元素的权重。
请问大家,使用Python怎么将a中位置为0,2,4的元素进行数量扩充?
假如扩充的条件为:该元素需要扩充的数量=该元素在a中原本的数量+该元素的权重*10
麻烦大家帮忙解答一下,有点复杂,谢谢各位了!
望采纳
可以使用 Python 中的列表推导式,如下代码所示:
a = [1, 2, 3, 5, 3, 6, 7, 1]
b = [0, 2, 4]
c = [x, y, z]
result = [a[i] * (a[i] + 10 * c[j]) for i in range(len(a)) for j in range(len(b)) if i == b[j]]
print(result)
它等同于下列循环实现
a = [1, 2, 3, 5, 3, 6, 7, 1]
b = [0, 2, 4]
c = [x, y, z]
result = []
for i in range(len(a)):
for j in range(len(b)):
if i == b[j]:
result.append(a[i] * (a[i] + 10 * c[j]))
print(result)