给出一些输入
L=[0]*5
L1=[2,3]
L2=[12,13]
我要求的结果是:
L=[0,0,12,13,0]
我知道如何通过“蛮力”得到这个,但我的问题是,是否有一种“Pythonic”方式来获取它,例如列表理解?
答案 0 :(得分:2)
试试这个:
import numpy as np
L=np.zeros(5)
L1=np.array([2,3])
L2=np.array([12,13])
L[L1] = L2
print L
# array([ 0., 0., 12., 13., 0.])
答案 1 :(得分:1)
不确定这对你来说是否足够pythonic:
>>> for i,j in enumerate(L1):
... L[j]=L2[i]
...
>>> L
[0, 0, 12, 13, 0]
并使用列表理解:
>>> [L[i] if i not in L1 else L2[L1.index(i)] for i in range(len(L))]
[0, 0, 12, 13, 0]
答案 2 :(得分:0)
我不认为这是非常pythonic,但它是列表理解。
[l.__setitem__(i, l2.pop(0)) for i in l1]