2016-08-13 9 views
0

forループの各シングルトンに重複と値を代入しないようにすることを試みています。forループ内の各シングルトンに重複を避けて値を代入する

まず、私はそれが接続されているノードへの一つのノードからのエッジを作成します。これは私の

([('D', 'A'), ('D', 'B'), ('D', 'C')], 0.3333333333333333) 
([('D', 'A'), ('D', 'B'), ('D', 'C')], 0.3333333333333333) 
([('D', 'A'), ('D', 'B'), ('D', 'C')], 0.3333333333333333) 

を与える

ti = "D" #node from 
lst = ["A", "B", "C"] #nodes to 

packaged = [(ti, l) for l in lst] # a list of edges (from - to) 

l_lst = len(lst) ## length of lst, *i.e.* degree of ti 

weight = 1/float(l_lst) # edge weight, normalized by length of lst 

for pair in packaged: 
    print (packged, weight) 

しかし、私が達成したいことは次のとおりです。

('D', 'A'), 0.3333333333333333 
('D', 'B'), 0.3333333333333333 
('D', 'C'), 0.3333333333333333 

重複を避け、ノード(エッジ)の各ペアに重みを割り当てるにはどうすればよいですか?

ありがとうございました!

+2

オム: 'プリント(ペア、重量)'? –

+1

あなたはそれぞれの反復で 'packaged'を印刷しています - 代わりに' pair'を印刷することになっていますか? –

+0

ハハ。ありがとう!!私は自分自身を完全に混乱させた。 – achimneyswallow

答えて

3

は何が必要このです:

ti = "D" #node from 
lst = ["A", "B", "C"] #nodes to 

packaged = [(ti, l) for l in lst] # a list of edges (from - to) 

l_lst = len(lst) ## length of lst, *i.e.* degree of ti 

weight = 1/float(l_lst) # edge weight, normalized by length of lst 

for pair in packaged: 
    print (pair, weight) 

でループを使用pairの代わりpackaged

+0

ありがとうございます。私はあまりにも早く起きたのでちょうどだと思います... – achimneyswallow

+0

ハハ...その罰金。 – dazzieta

3

を修正する簡単な方法:

for pair in packaged: 
    print (pair, weight) 
関連する問題