1

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

  1. For循环(获取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
    
4

1 回答 1

0

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

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

于 2013-02-16T06:08:40.290 回答