2017-12-13 8 views
0


最初の質問はのpython3でforループで変数を作成する方法です。
私は例の結果を提供します。
は、変数を作成し、のpython3でforループで()spatial.distance.euclidianに引数を使用する方法

box1 = [1.0, 2.0, 3.0] 
box2 = [2.0, 4.0, 6.0] 
box3 = [3.0, 6.0, 9.0] 

私は、コードを試してみましたが、のpython3はSyntaxError: can't assign to operator言いました。
マイコード:

for i in range(1, 4): 
    box + str(i) = [i*i, (i+1)*i, (i+2)*i] 


2つ目の質問はのpython3でforループで)(spatial.distance.euclidianに引数を使用する方法です。
spatial.distance.euclidianはscipyメソッドです。

for i in range(1, 4):  
    print(spatial.distance.euclidian(box1, box + str(i))) 

が私に手を貸してください:
は私のコードを試してみました。

答えて

0

最初の質問:明らかな答えは、データの辞書を使用することです。 dict comprehensionを使用して:あなたは本当になどbox_1、box_2、のような変数を持つようにしたい場合は

box = {i: [i*i, (i+1)*i, (i+2)*i] for i in range(1,4)} 

for i in range(1,4): 
    exec('box_' + str(i) + ' = [' + str(i*i) + ']') 

のようなものが必要とされています。

2番目の質問: itertools.combinationsを使用すると、キーからすべてのペアを作成し、対応するリストの距離を計算できます。

from itertools import combinations 
from scipy.spatial.distance import euclidean 

for a, b in combinations(box.keys(), 2): 
    print(euclidean(box[a], box[b])) 
+0

私に教えていただきありがとうございます!私は質問を解決する:) – maguro

関連する問題