1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python嵌套循环跳出_python 行使 for ... else 跳出双层嵌套循环_rust辅助 彩虹六号辅助...

python嵌套循环跳出_python 行使 for ... else 跳出双层嵌套循环_rust辅助 彩虹六号辅助...

时间:2020-07-28 03:45:13

相关推荐

python嵌套循环跳出_python 行使 for ... else 跳出双层嵌套循环_rust辅助 彩虹六号辅助...

Mockito不能mock final类的解决办法方舟生存进化辅助

靠山

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

例如:搜索效果中共分为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循环来实现,另外要注意设置条件来跳出循环,如下

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

4 defget_data(source, count):5 for i in range(0, len(source) 1):6 temp =source[i]7 for j intemp:8 target.append(j)9 if len(target) >=count:10 break

11

12 else:13 continue

14 break

15

16 t = get_data(source, 6)17 print(target)

source代表原列表;count代表提取数字的个数

凭据菜鸟教程的提醒,for ... else 的意思如下:

1、for 中的语句和通俗的没有区别,else 中的语句会在循环正常执行完的情况下执行(即 for 不是通过 break 跳出而中止的);

2、若是for是由于break中止的,则不会执行else语句

来详细分析下count为差别值时的运行历程及效果,绝地求生辅助,

1、count=3

当count=3时,获得如下效果

target = [1, 2, 3]

source中包罗4个子列表,每个子列表包罗5个数字;

遍历外层for循环,当遍历到第一个子列表时,就能够知足内层for循环中止的条件了,即:当提取到第一个字列表的数字3时,target的长度即是3,知足len(target)>=count,跳出内层for循环

由于此时不是正常退出内层for循环,以是不会执行后面的else语句(ps:这里else语句下是执行continue指令,也就是继续遍历外层for循环),然后继续执行else后的berak语句,跳出外层for循环

综上,获得target = [1, 2, 3] 的效果

2、count=8

当count=3时,获得如下效果

target = [1, 2, 3, 4, 5, 6, 7, 8]

同样,先取出外层for循环的第一个子列表,第一个子列表只有5个数字,当遍历完后,target的长度即是5,不知足len(target)>=count

此时内层for循环正常竣事第一轮遍历,由于for循环正常竣事,以是执行else下的语句,也就是执行continue指令,这里的continue是针对外层for循环的,也就是说继续取出外层for循环的第二个子列表

当第二个子列表遍历到第三个数字时,target的长度即是8,知足len(target)>=count,,跳出内层for循环

同理,由于此时不是正常退出内层for循环,以是不会执行后面的else语句,然后继续执行else后的berak语句,跳出外层for循环

综上,获得target =[1, 2, 3, 4, 5, 6, 7, 8]的效果

以上就是for ... else 跳出双层嵌套循环的内容,希望对人人有辅助~

,dnf卡盟javaweb学习之路(3)Cookie

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。