2016-12-16 3 views
1

3つの配列ID Edges Xnがあります。この情報を使用して4番目の配列を作成する必要があります。 IDは異なるIDを含む:各IDのPython 2.7で他の配列のインデックスを使って配列を作成するには?

Edges = [('48', '77'), ('63', '48'), ('77', '48'), ('77', '108'), ('108', '48'), ('306', '48')]) 

およびXnの座標:

Xn = [3.08, 4.96, 4.04, 1.68, 1.6] 

私が作成したいエッジにおいて

IDs = ['48', '63', '77', '108', '306'] 

は、IDの組であります3つの配列の情報を組み合わせた配列Xe、すなわち、IDの位置が配列内で識別されている場合(例えば、edge( '48'、 '77')の場合)は、IDの位置1と3 Pythonで2)、そう(3.08、4.04)Xnの第一及び第三の座標を使用し、私はこのようなアレイXeを有することができるので、単語「なし」で区切られたすべてのエッジに対して同じ操作を行います。

Xe = [3.08, 4.04, None, 4.96, 3.08, None, 4.04, 3.08, None, 4.04, 1.68, None, 1.68, 3.08, None, 1.60, 3.08, None] 

私を助けることができれば本当に感謝します!

乾杯!私はこれが働くかもしれないと思う

答えて

1

テスト済みの作業完璧

IDs = ['48', '63', '77', '108', '306'] 
Edges = [('48', '77'), ('63', '48'), ('77', '48'), ('77', '108'), ('108', '48'), ('306', '48')] 
Xn = [3.08, 4.96, 4.04, 1.68, 1.6] 
Xe = [] 

for i in xrange(len(Edges)): 
    for j in xrange(2): 
     if Edges[i][j] in IDs: 
      Xe.append(Xn[IDs.index(Edges[i][j])]) 
    Xe.append(None) 

print Xe 
0
IDs = ['48', '63', '77', '108', '306'] 
Edges = [('48', '77'), ('63', '48'), ('77', '48'), ('77', '108'), ('108', '48'), ('306', '48')]) 
Xn = [3.08, 4.96, 4.04, 1.68, 1.6] 
Xe = [0]*len(Edges)*3 
def findid(arrayl,num): 
For i in range (arrayl): 
    if arrayl[i]==num: 
    return i 
return -1 
j=0 
For i in range (len(Edges)): 
j+=1 
Xe[j]=Xn[findid(IDs,Edge[i][0])] 
j+=1 
Xe[j]=Xn[findid(IDs,Edge[i][1])] 
Xe[j+1]="None" 
j+=2 

、私はPythonインタプリタなしでしたので、私はそれをテストdidntの、それを試してみて、それがworkds場合を言います! :)

関連する問題