回答編集履歴

5 誤解を招かないように一部修正

LouiS0616

LouiS0616 score 27574

2018/03/04 00:31  投稿

evaluateを共有してしまっているのが原因です。
簡単に直すなら、`evaluate.clear()`を`evaluate = []`に置き換えてください。
実はこれ、よく初心者を悩ませる動作です。
```Python
hoge = [0, 0, 0]
fuga = []
fuga.append(hoge)
hoge[0] = 10
fuga.append(hoge)
print(fuga)  # [[10, 0, 0], [10, 0, 0]]
```
変数はあくまでも参照値に過ぎず、参照先の変更が影響してしまうのです。
変数はあくまでも参照値に過ぎず、参照先のインプレースな変更が影響してしまうのです。
---
細かな仕様がよく分かりませんが、こんな風に簡潔に書けそうですね。
```Python
def compute_evaluate(point_list):
  """生の得点を『評価値』に変換する"""
   return point_list
raw_result = {
   '001': [1, 1, 1],
   '002': [2, 2, 2],
}
result = {
   k: compute_evaluate(v) for k, v
   in raw_result.items()
}
print(result)
```
4 わりとネガティブな用途で『良く』は、変かも...?ひらがなにしよう

LouiS0616

LouiS0616 score 27574

2018/03/04 00:28  投稿

evaluateを共有してしまっているのが原因です。
簡単に直すなら、`evaluate.clear()`を`evaluate = []`に置き換えてください。
実はこれ、く初心者を悩ませる動作です。
実はこれ、く初心者を悩ませる動作です。
```Python
hoge = [0, 0, 0]
fuga = []
fuga.append(hoge)
hoge[0] = 10
fuga.append(hoge)
print(fuga)  # [[10, 0, 0], [10, 0, 0]]
```
変数はあくまでも参照値に過ぎず、参照先の変更が影響してしまうのです。
---
細かな仕様がよく分かりませんが、こんな風に簡潔に書けそうですね。
```Python
def compute_evaluate(point_list):
  """生の得点を『評価値』に変換する"""
   return point_list
raw_result = {
   '001': [1, 1, 1],
   '002': [2, 2, 2],
}
result = {
   k: compute_evaluate(v) for k, v
   in raw_result.items()
}
print(result)
```
3 追記

LouiS0616

LouiS0616 score 27574

2018/03/04 00:27  投稿

evaluateを共有してしまっているのが原因です。
簡単に直すなら、`evaluate.clear()`を`evaluate = []`に置き換えてください。
実はこれ、良く初心者を悩ませる動作です。
```Python
hoge = [0, 0, 0]
fuga = []
fuga.append(hoge)
hoge[0] = 10
fuga.append(hoge)
print(fuga)  # [[10, 0, 0], [10, 0, 0]]
```
変数はあくまでも参照値に過ぎず、参照先の変更が影響してしまうのです。
変数はあくまでも参照値に過ぎず、参照先の変更が影響してしまうのです。
---
細かな仕様がよく分かりませんが、こんな風に簡潔に書けそうですね。
```Python
def compute_evaluate(point_list):
  """生の得点を『評価値』に変換する"""
   return point_list
raw_result = {
   '001': [1, 1, 1],
   '002': [2, 2, 2],
}
result = {
   k: compute_evaluate(v) for k, v
   in raw_result.items()
}
print(result)
```
2 誤字修正

LouiS0616

LouiS0616 score 27574

2018/03/04 00:22  投稿

evaluateを有してしまっているのが原因です。
evaluateを有してしまっているのが原因です。
簡単に直すなら、`evaluate.clear()`を`evaluate = []`に置き換えてください。
実はこれ、良く初心者を悩ませる動作です。
```Python
hoge = [0, 0, 0]
fuga = []
fuga.append(hoge)
hoge[0] = 10
fuga.append(hoge)
print(fuga)  # [[10, 0, 0], [10, 0, 0]]
```
変数はあくまでも参照値に過ぎず、参照先の変更が影響してしまうのです。
1 作文の修正

LouiS0616

LouiS0616 score 27574

2018/03/04 00:22  投稿

evaluateを享有してしまっているのが原因です。
簡単に直すなら、`evaluate.clear()`を`evaluate = []`に置き換えてください。
実はこれ、良く初心者を悩ませる動作です。
```Python
hoge = [0, 0, 0]
fuga = []
fuga.append(hoge)
hoge[0] = 10
fuga.append(hoge)
print(fuga)  # [[10, 0, 0], [10, 0, 0]]
```
hogeとはあくまでもリストへの参照値に過ぎず、参照先の変更が影響してしまうのです。
変数はあくまでも参照値に過ぎず、参照先の変更が影響してしまうのです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る