質問: points`を確認すると真でした。 計算速度の観点からみるとそもそもfor文を使うべきではないかもしれませんが、それは置いておいて、このコードは何が問題なのでしょうか。 ### 補足情報(FW/ツールのバージョンなど) Python3.5.2を使用
回答: evaluateを共有してしまっているのが原因です。 簡単に直すなら、`evaluate.clear()`を`evaluate = []`に置き換えてください。 実はこれ、よく初心者を悩ませる動作です。 ``` hoge = [0, 0, 0] fuga = [] fuga.append(hoge) hoge[0] = 10 fuga.append(hoge) print(fuga) # [[10, 0, 0], [10, 0, 0]] ``` 変数はあくまでも参照値に過ぎず、参照先のインプレースな変更が影響してしまうのです。 細かな仕様がよく分かりませんが、こんな風に簡潔に書けそうですね。 ``` 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) ```