この問題を解決するために数行のコードを書きましたが、プロファイラーは非常に時間がかかると言っています。(kernprof 行ごとのプロファイラーを使用) コードは次のとおりです。
comp = [1, 2, 3] #comp is list with always 3 elements, values 1, 2, 3 are just for illustration
m = max(comp)
max_where = [i for i, j in enumerate(comp) if j == m]
if 0 in max_where:
some action1
if 1 in max_where:
some action2
if 2 in max_where:
some action3
プロファイラーによると、max_where の計算にほとんどの時間が費やされています。不必要な操作を避けるために、この計算を if-tree に分割しようとしましたが、結果は満足のいくものではありませんでした。
お願いします、私はそれを間違っていますか、それともただのpythonですか?