我正在学习Python,这个sqlite3代码对我来说有点偏。 Python会优化并运行一次SQL语句吗?
for row in c.execute('SELECT * FROM stocks ORDER BY price'):
print row
答案 0 :(得分:1)
正如我评论的那样,它会运行一次,来自文档The for statement的相关部分:
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]
表达式列表评估一次 ;它应该产生一个可迭代的对象。为expression_list的结果创建一个迭代器。然后,对于迭代器提供的每个项,按升序索引的顺序执行一次该套件。依次使用标准的分配规则将每个项目分配给目标列表,然后执行该套件。当项目耗尽时(序列为空时立即),执行else子句中的套件(如果存在),循环终止。
强调我的。