Python函数(十二)-迭代器

字符串,列表,元组,字典,集合,生成器这些能通过for循环来遍历的数据类型都是可迭代对象

可通过isinstance判断是不是可迭代对象

>>> from collections import Iterable
>>> isinstance(‘Python‘, Iterable)
True
>>> isinstance([1,2,3], Iterable)
True
>>> isinstance((1,2,3), Iterable)
True
>>> isinstance({‘name‘:‘John‘,‘age‘:22}, Iterable)
True
>>> isinstance({1,2,3}, Iterable)
True
>>> isinstance((i*2 for i in range(10)), Iterable)
True
>>> isinstance(100, Iterable)
False

isinstance也可以判断是不是迭代器

>>> from collections import Iterator
>>> isinstance(‘Python‘, Iterator)
False
>>> isinstance([1,2,3], Iterator)
False
>>> isinstance((1,2,3), Iterator)
False
>>> isinstance({‘name‘:‘John‘,‘age‘:22}, Iterator)
False
>>> isinstance({1,2,3}, Iterator)
False
>>> isinstance((i*2 for i in range(10)), Iterator)
True
>>> isinstance(100, Iterator)
False

可见可迭代对象不一定是迭代器,但迭代器是可迭代对象

如果要把可迭代对象变为迭代器,可以使用iter()方法

>>> from collections import Iterator
>>> isinstance(iter(‘Python‘), Iterator)
True
>>> isinstance(iter([1,2,3]), Iterator)
True
>>> isinstance(iter((1,2,3)), Iterator)
True
>>> isinstance(iter({‘name‘:‘John‘,‘age‘:22}), Iterator)
True
>>> isinstance(iter({1,2,3}), Iterator)
True

迭代器可以用next()方法取数据,跟生成器一样

原文地址:https://www.cnblogs.com/sch01ar/p/8410742.html

时间: 2024-10-06 13:20:47

Python函数(十二)-迭代器的相关文章

初学 Python(十二)——高阶函数

初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 称为高阶函数 ''' #函数作参 def f(x): return x*x #map函数为内置函数,意思为将第二个参数的list作用到f函数中 #最后的结果为一个list print map(f,[1,2,3,4,5]) #reduce函数为内置函数,意思将第二参数的序列作用到add函数值 #将结

Python进阶(十二)----re模块

Python进阶(十二)----re模块 一丶re模块 ? re模块是python将正则表达式封装之后的一个模块.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. #正则表达式: 从一串字符中,找出你想要的字符串. import re ### 单个元字符的匹配 # \W 除了数字 ,字母,中文, 下划线 print(re.findall('\W','dsadas1231 +1-+2*/,.')) # \w 匹配中文,数字,字母,下划线 print(re.findall('\w

python函数五(迭代器,生成器)

一.迭代器 1.可迭代对象(只含有__iter__方法的数据是可迭代对象) 常见的可迭代对象:str list tuple dict set range 1.1什么是可迭代对象? 方法一: dir(被测对象) 如果 他含有'__iter__ ',那这个对象就叫做可迭代对象.遵循可迭代协议 s = 'alex' l = [1,2,3,4,5] print('__iter__' in dir(s)) print('__iter__' in dir(l)) # 输出结果: # True # True

python 第十二章 生成器+推导式+内置函数一(不常用的)

生成器 # 迭代器:python中内置的一种节省空间的工具 # 生成器的本质就是一个迭代器 # 区别:迭代器自带的,生成器自己写的 # return可以写多个,但是只执行一次 # yield会记录执行位置 # 一个next()对应一个yield def func(): print(123) return "you" print(func()) # 123 # you # return和yield 都是返回值 # 在函数体内将return改成yield的就是一个生成器 def func(

Python学习十二:高阶函数

在学习高阶函数之前需要搞清一个概念: 变量可以指向函数 意思就是:把函数名赋值给另一个变量,然后使用这个变量完成跟函数一样的功能. 如下代码所示: 将求绝对值函数abs赋值给f,然后调用f完成跟abs一样的功能. >>> f = abs >>> f(-100) 100 >>> 好了接下来看:高阶函数 定义为:一个函数接收另一个函数作为参数,这种函数就称之为高阶函数. 如下代码所示: def add(x , y , f): return f(x) + f

python笔记十二(匿名函数)

一.匿名函数 有些情况下,我们需要把函数当做参数传入到另外的函数中,或者是把函数作为某个函数的返回值,此时我们就可以使用匿名函数. 匿名函数的标志是lambda. >>> f = lambda x:x*x >>> f <function <lambda> at 0x000002AB91CA7F28> >>> f(5) 25 >>> f = lambda a,b: a*a +b*b >>> f

python——函数18、迭代器(二)

1.for循环工作原理: for循环: d={'a':1,'b':2,'c':3} for i in d: print(i) 原理:for循环其实就是再调后面那个d的d.__iter__() # todo 循环第一次: obj=d.__iter__() i=obj.__next__() print(i) # todo 循环第二次 i=obj.__next__() print(i) # todo 循环第三次 i=obj.__next__() print(i) 2.while循环 i={'a':1,

《转》Python学习(19)-python函数(二)-关于lambda

转自http://www.cnblogs.com/BeginMan/p/3178103.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的.如下: """命名的foo函数""" def foo():return 'beginman' #Python中单行参数可以和标题写在一行 """lambda关键字创建匿名函数,该表达式同

Python函数初识二

一.变量的作用域LEGB 1.1.变量的作用域 在Python中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的.变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称. 在Python程序中创建.改变.查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域.python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量能被访问的范围.即Python变量的作用域由变量所在源代码中的位置决定. 1.2.变量作用域的产生 在Py