电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

python使用for...else跳出雙層嵌套循環(huán)的方法實例

瀏覽:31日期:2022-07-25 11:22:32

背景

周末在寫一個爬蟲時,遇到這樣一種場景:從搜索結(jié)果中下載指定數(shù)量的文件

例如:搜索結(jié)果中共分為10頁展示,加起來一共50條數(shù)據(jù),現(xiàn)在要做的是從50條數(shù)據(jù)中下載指定數(shù)量的數(shù)據(jù)

為了實現(xiàn)這個功能,開始我是這樣想的:

1、依次遍歷10頁數(shù)據(jù),并且把每頁的數(shù)據(jù)都追加到同一個列表中,這樣的話,請求完10頁數(shù)據(jù)后,這個列表中就包含了所有結(jié)果;

2、然后再從這個大列表中提取指定數(shù)量的數(shù)據(jù)進(jìn)行下載即可

這種方法確實可行,但是在運行過程中發(fā)現(xiàn)一個問題:程序運行速度太慢了,原因是無論你想下載多少條數(shù)據(jù),都會先把所有數(shù)據(jù)請求下來并追加到列表中,這個過程實在是太耗時了,而且也不合理

所以換一種思路:要下載n條數(shù)據(jù),就只提取n條,不提前把所有數(shù)據(jù)請求下來

具體實現(xiàn)方法

上面舉的例子,可以抽象為如下功能

首先有一個嵌套的列表

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

然后提取這個列表中的數(shù)據(jù)到一個新的列表中,例如取前3個數(shù)字、前5個數(shù)字或者前8個數(shù)字

可以通過雙層for循環(huán)來實現(xiàn),另外要注意設(shè)置條件來跳出循環(huán),如下

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(source)+1): temp = source[i] for j in temp: target.append(j) if len(target) >= count: break else: continue breakt = get_data(source, 6)print(target)

source代表原列表;count代表提取數(shù)字的個數(shù)

根據(jù)菜鳥教程的提示, for ... else 的意思如下:

1、for 中的語句和普通的沒有區(qū)別,else 中的語句會在循環(huán)正常執(zhí)行完的情況下執(zhí)行(即 for 不是通過 break 跳出而中斷的);

2、如果for是由于break中斷的,則不會執(zhí)行else語句

來分析下count為不同值時的運行過程及結(jié)果

1、count=3

當(dāng)count=3時,得到如下結(jié)果

target = [1, 2, 3]

source中包含4個子列表,每個子列表包含5個數(shù)字;

先遍歷外層for循環(huán),當(dāng)遍歷到第一個子列表時,就能夠滿足內(nèi)層for循環(huán)中斷的條件了,即:當(dāng)提取到第一個子列表的數(shù)字3時,target的長度等于3,滿足len(target)>=count,跳出內(nèi)層for循環(huán)

由于此時不是正常退出內(nèi)層for循環(huán),所以不會執(zhí)行后面的else語句(ps:這里else語句下是執(zhí)行continue指令,也就是繼續(xù)遍歷外層for循環(huán)),然后繼續(xù)執(zhí)行else后的berak語句,跳出外層for循環(huán)

綜上,得到 target = [1, 2, 3] 的結(jié)果

2、count=8

當(dāng)count=3時,得到如下結(jié)果

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

同樣,先取出外層for循環(huán)的第一個子列表,第一個子列表只有5個數(shù)字,當(dāng)遍歷完后,target的長度等于5,不滿足len(target)>=count

此時內(nèi)層for循環(huán)正常結(jié)束第一輪遍歷,由于for循環(huán)正常結(jié)束,所以執(zhí)行else下的語句,也就是執(zhí)行continue指令,這里的continue是針對外層for循環(huán)的,也就是說繼續(xù)取出外層for循環(huán)的第二個子列表

當(dāng)?shù)诙€子列表遍歷到第三個數(shù)字時,target的長度等于8,滿足len(target)>=count,,跳出內(nèi)層for循環(huán)

同理,由于此時不是正常退出內(nèi)層for循環(huán),所以不會執(zhí)行后面的else語句,然后繼續(xù)執(zhí)行else后的berak語句,跳出外層for循環(huán)

綜上,得到 target =[1, 2, 3, 4, 5, 6, 7, 8] 的結(jié)果

總結(jié)

到此這篇關(guān)于python使用for...else跳出雙層嵌套循環(huán)的文章就介紹到這了,更多相關(guān)python for else跳出雙層嵌套循環(huán)內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 太空舱_民宿太空舱厂家_移动房屋太空舱价格-豪品建筑 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 中矗模型-深圳中矗模型设计有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-沼河浸过滤器 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 多功能三相相位伏安表-变压器短路阻抗测试仪-上海妙定电气 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 太空舱_民宿太空舱厂家_移动房屋太空舱价格-豪品建筑 | 高温高压釜(氢化反应釜)百科 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 玄米影院| 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 餐饮小吃技术培训-火锅串串香培训「何小胖培训」_成都点石成金[官网] | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 |