1

行をキーと値に分割し、それをdict呼び出された に配置する必要があるとしpropsます。セパレーターを とします=。私はこのようにすることができます:

props[line.partition('=')[0]] = line.partition('=')[2]

またはこれ:

splits = line.partition('=')
props[splits[0]] = splits[2]

最初のフォームは文字列を 2 回分割しますか、それとも 1 回だけ行うように最適化されますか? 実装に依存すると思いますが、一般的な実装はこれを行いますか (CPython Jython、IronPython)? 私はそれが時期尚早の最適化であることを知っています。私はPythonが初めてで、ただ興味があります。

4

2 に答える 2

3

最初のケースでは、文字列は 2 回分割されます。

Python は動的言語であるため、line値が不変であり、.partition()メソッドが毎回同じ結果を返すことを保証できません。line.partition('=')毎回実行するしかありません。

于 2013-08-02T13:17:54.547 に答える
0

Python バイトコード コンパイラ/インタプリタは非常に単純で (原始的と言えます)、いくつかの非常に基本的な定数の折りたたみと、要求された場合にアサートをスローすることを除いて、最適化を実行しません。確かに、一般的な部分式の削除パスはありません。

于 2013-08-02T13:27:46.107 に答える