python两层for循环嵌套的执行过程_python使用for...else跳出双层嵌套循环的方法实例...

背景

周末在写一个爬虫时,遇到这样一种场景:从搜索结果中下载指定数量的文件

例如:搜索结果中共分为10页展示,加起来一共50条数据,现在要做的是从50条数据中下载指定数量的数据

为了实现这个功能,开始我是这样想的:

1、依次遍历10页数据,并且把每页的数据都追加到同一个列表中,这样的话,请求完10页数据后,这个列表中就共含了所有结果;

2、然后再从这个大列表中提取指定数量的数据进行下载就行了

这种方法确实可行,但是在运行过程中发现一个问题:程序运行速度太慢了,原因是无论你想下载多少条数据,都会先把所有数据请求下来并追加到列表中,这个过程实在是太耗时了,而且也不合理

所以换一种思路:要下载n条数据,就只提取n条,不提前把所有数据请求下来

详细实现方法

上面举的例子,可以抽象为如下功能

首先有一个嵌套的列表

[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]

然后提取这个列表中的数据到一个新版的列表中,例如取前3个数字、前5个数字或者前8个数字

可以通过双层for循环来实现,另外要注重设置条件来跳出循环,如下

source = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]

target = []

def get_data(source, count):

for i in range(0, len(s

你可能感兴趣的:(python两层for循环嵌套的执行过程_python使用for...else跳出双层嵌套循环的方法实例...)