回答編集履歴

2

ミスがあったため修正。

2016/06/23 04:56

投稿

kei344
kei344

スコア69407

test CHANGED
@@ -23,3 +23,71 @@
23
23
  return HUBS,AUTHS
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ ---
30
+
31
+
32
+
33
+ **追記:**
34
+
35
+
36
+
37
+ Pythonの引数は参照渡しなんですね。関数内部に新たに配列を作って、それを返すのはいかがでしょう。
38
+
39
+
40
+
41
+ ```Python
42
+
43
+ def HITS(HUBS,AUTHS,links):
44
+
45
+ ares=[]
46
+
47
+ hres=[]
48
+
49
+ asum=0
50
+
51
+ hsum=0
52
+
53
+ for i in range(len(AUTHS)):
54
+
55
+ asum=sum(h[1] for h in HUBS if (h[0],AUTHS[i][0]) in links)
56
+
57
+ ares[i]=(AUTHS[i][0],asum)
58
+
59
+ for i in range(len(HUBS)):
60
+
61
+ hsum=sum(a[1] for a in AUTHS if (HUBS[i][0],a[0]) in links)
62
+
63
+ hres[i]=(HUBS[i][0],hsum)
64
+
65
+ return hres,ares
66
+
67
+ ```
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+ 【Pythonの引数はすべて参照渡し - Qiita】
76
+
77
+ [http://qiita.com/urakarin/items/1d6e0e76bffb9297606e](http://qiita.com/urakarin/items/1d6e0e76bffb9297606e)
78
+
79
+
80
+
81
+ 【Pythonの引数は全て参照渡しの件について - k_kinukawa's diary】
82
+
83
+ [http://kkinukawa.hatenablog.com/entry/20100518/1274189687](http://kkinukawa.hatenablog.com/entry/20100518/1274189687)
84
+
85
+
86
+
87
+ 【[Python]常識ですよ?と言われないための引数入門 - くろのて】
88
+
89
+ [http://note.crohaco.net/2014/python-argument-intro/](http://note.crohaco.net/2014/python-argument-intro/)
90
+
91
+
92
+
93
+

1

補足の追加。

2016/06/23 04:56

投稿

kei344
kei344

スコア69407

test CHANGED
@@ -1,4 +1,4 @@
1
- Python は不勉強なのですが、スコープの問題ではないでしょうか。
1
+ Python は不勉強なのですが、スコープの問題(関数内変数hubsを書き換えている)ではないでしょうか。関数内で使う変数の名前を変えてしまうか、下記のように引数を直接使うかどちらかで出来るのではないでしょうか。
2
2
 
3
3
  ```Python
4
4