python for 指定循环数量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python for 指定循环数量相关的知识,希望对你有一定的参考价值。
怎么给FOR 指定 循环的次数
list1 = ["电脑配件批发","电脑批发","电脑批发网"]
# for i in list1:
# print i
t = choice(list1)
gjc=urllib.quote(t)
# print gjc
for item in gjc:
定义一个要输出的内容:
指定循环的数量,我这里是6次
随机循环输出
扩展资料:
python内置range()函数的作用是什么?它能返回一系列连续增加的整数,它的工作方式类似于分片,可以生成一个列表对象。
range函数大多数时常出现在for循环中,在for循环中可做为索引使用。其实它也可以出现在任何需要整数列表的环境中,在python 3.0中range函数是一个迭代器。
参考技术A list11 = [1,5,6,5,8] # 指定一个列表count = 3 # 就循环个3次吧
for i in list11:
if count == 0: # if语句,每打印一次,count减一,直到count == 0
pass
else:
print(i)
count = count - 1
>>>1
5
6 参考技术B 如果只是想要获取遍历对象的索引可以这样:
for i,v in enumerate(list1):
print(’索引的值是'.format(i,v)) 参考技术C for i in range(5):
循环5次,i从 0到4 参考技术D for item in list
将遍历整个list
如果想不遍历就跳出,假设遍历索引号0,1,2,则:
for index,item in enumerate(list):
if (index == 3):
break
print index本回答被提问者和网友采纳
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循环来实现,另外要注意设置条件来跳出循环,如下
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 def get_data(source, count): 5 for i in range(0, len(source)+1): 6 temp = source[i] 7 for j in temp: 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 跳出双层嵌套循环的内容,希望对大家有帮助~
以上是关于python for 指定循环数量的主要内容,如果未能解决你的问题,请参考以下文章