有关产量和没有产量的循环数据有什么不同

时间:2013-02-16 05:58:02

标签: python

我有两种循环数据的方法,一种使用 for loop 另一种使用 yield ,我想知道有什么区别。

  1. For Loop(获取100000数据)

    data='select 100000 data from database'
    
    for d in date:
        do something with d    
    
  2. yield(每次获取1000个数据,然后查询数据库100次)

    def func():
        data='select 1000 data from database'
        while date.count>0:
            yield data
    
    data = func()   
    for d in data:
        do something with d
    

1 个答案:

答案 0 :(得分:0)

从功能上讲,它们是相同的。

主要区别在于,在第二种情况下,在不重复SQL语句的情况下,很容易有几个不同的“做某事”块。在第一种情况下,“做某事”是硬编码的。