想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们 itertools 模块中有一些函数可以完成这个任务.首先介绍的是itertools.dropwhile() 函数.使用时,你给它传递一个函数对象和一个可迭代对象.它会返回一个迭代器对象,丢弃原有序列中直到函数返回True 之前的所有元素,然后返回后面所有元素.为了演示,假定你在读取一个开始部分是几行注释的源文件. with open('/etc/passwd') as f: ... for line in f: ... pri
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 可以用for 进行迭代的,一般都是可迭代对象: 除了内置的数据类型(列表.元组.字符串.字典等)可以通过 for 语句进行迭代,我们也可以自己创建一个容器,包含一系列元素,可以通过 for 语句依次循环取出每一个元素,这种容器就是迭代器(iterator).除了用 for 遍历,迭代器还可以通过 next() 方法逐一读取下一个元素.要创建一个
可迭代对象 什么是可迭代对象?顾名思义就是可以迭代的一个对象,再通俗点就是可以被for循环遍历的对象,如常用的list.str等数据类型.我们可以使用isinstance来判断这个数据是否是可迭代对象,在此要先从Iterable包中导入模块collections. from collections import Iterable a = 1 #int b= [1,2,3] #list c= "abc" #str d = {1,2,3} #set e = (1,2,3) #tuple f
生成器(constructor) 生成器函数在Python中与迭代器协议的概念联系在一起.包含yield语句的函数会被特地编译成生成器 !!! 当函数被调用时,他们返回一个生成器对象,这个对象支持迭代器接口. 不像一般的函数会生成值后退出,生成器函数在生成值后会自动挂起并暂停他们的执行和状态,他的本地变量将保存状态信息,这些信息在函数恢复时将再度有效 创建生成器方式有两种: 方法一: s = ( x for x in range(5) ) 方法二: def foo(): print('OK')