1
私のコードを修正するにはあなたの助けが必要です。私は辞書のリストに値を追加しようとしています。Python - 辞書に登録する値を挿入する
def distance(x1, y1, x2, y2):
dis=((x1-x2)**2) + ((y1-y2)**2)
return dis
def cluster_member_formation2(arrCH, arrN, k):
dicCH = dict.fromkeys(arrCH,[])
arrE = []
for j in range(len(arrCH)):
d_nya = distance(arrN[1][0], arrN[1][1], arrN[arrCH[j]][0], arrN[arrCH[j]][1])
arrE.append(d_nya)
minC = min(arrE)
ind = arrE.index(minC)
x = arrCH[ind]
dicCH[x].append(1)
print(arrE, minC, ind, x, dicCH)
arrCH=[23, 35]
arrN={0:[23, 45, 2, 0], 1:[30,21,2,0], 23:[12, 16, 2, 0], 35:[48, 77, 2, 0]}
cluster_member_formation2(arrCH, arrN, 1)
出力:
[349, 3460] 349 0 23 {35: [1], 23: [1]}
Iは、ノード1とarrCH内のすべてのノードとの間の距離を計算し、次に最小距離を取ることを試みます。出力では、arrEの結果は[349,3460]であり、最小値は349です。349はインデックス0を持ち、インデックス0のarrCHはarrCH [0] = 23が好きです。最後に、私は更新したいdicCH [23] .append(1)その結果は
{35: [], 23: [1]}
しかしである、なぜ私のコード更新すべてのキー、35と23?
誰かが私を助けてくれることを願っています。 はありがとう..