我正在尝试优化一些 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 以元组列表或列表列表而不是字典列表的形式返回结果?或者,任何人都可以建议任何其他优化吗?