次の2つのスニペットのパフォーマンスが同じであるかどうかはわかりません。一時変数付きのPythonパフォーマンス
CODE1:
for fid1 in FId1:
if fid1 in [i['FId'] for i in entity['F']]:
res.append([intId1,fid1,entity['Id'],intId2])
CODE2:
temp = [i['FId'] for i in entity['F']]
tempid = entity['Id']
for fid1 in FId1:
if fid1 in temp:
res.append([intId1,fid1,tempid,intId2])
基本的には、ループの中で私は、エンティティを変更しないでください。
私はCode1では、最適化がなければ、すべてのループでそのリストを生成すると思います。それは読みやすくなりますが、それは遅くなるでしょうか?
したがって、私は一時的にリストを生成するようにtempを格納しようとします。
パフォーマンスはこのタスクにとって非常に重要です。
まだプロファイルしましたか? –
また、 'temp'を' set'にしたいでしょう( 'i ['FId']'がハッシュ可能であると仮定します)。 – chepner