いくつかの Python コードを最適化しようとしています。プロファイラーは、SQLAlchemy の _get_col() がパフォーマンスを低下させていることを教えてくれます。コードは次のようになります。
lots_of_rows = get_lots_of_rows()
for row in lots_of_rows:
if row.x == row.y:
print row.z
私はコードを調べて、このようにしようとしていました...
lots_of_rows = get_lots_of_rows()
for row in lots_of_rows:
if row[0] == row[1]:
print row[2]
...しかし、配列などの行オブジェクトにアクセスするときに、実際にはまだ辞書キーをプルしていることを示すと思われるドキュメントをいくつか見つけました。つまり、行オブジェクトは次のようになります。
'x': (x object)
'0': (x object)
'y': (y object)
'1': (y object)
'z': (z object)
'2': (z object)
その場合、名前ではなく番号で列にアクセスすることでパフォーマンスが向上するとは思えません。辞書のリストではなく、タプルのリストまたはリストのリストとして結果を返すように SA を取得する方法はありますか? あるいは、他の最適化を提案できる人はいますか?