在Python For循环中优化SQL执行

时间:2016-04-06 00:42:05

标签: python sql

我正在学习Python,这个sqlite3代码对我来说有点偏。 Python会优化并运行一次SQL语句吗?

for row in c.execute('SELECT * FROM stocks ORDER BY price'):
    print row

1 个答案:

答案 0 :(得分:1)

正如我评论的那样,它会运行一次,来自文档The for statement的相关部分:

for_stmt ::=  "for" target_list "in" expression_list ":" suite
              ["else" ":" suite]

表达式列表评估一次 ;它应该产生一个可迭代的对象。为expression_list的结果创建一个迭代器。然后,对于迭代器提供的每个项,按升序索引的顺序执行一次该套件。依次使用标准的分配规则将每个项目分配给目标列表,然后执行该套件。当项目耗尽时(序列为空时立即),执行else子句中的套件(如果存在),循环终止。

强调我的。