小小千想和您聊一聊

当前位置: 首页> 技术分享> python中的迭代器附带代码示例

python中的迭代器附带代码示例

  迭代的概念

  迭代就是执行重复的特定的任务,知道任务完成为止

  相当于我们盖房子,今天添一块砖,明天加一块瓦,直到房子盖完为止。这里每天的工作就是一次迭代

  (1.)可迭代对象

  a.可以直接作用于for-in循环的数据类型都被称为可迭代对象:Iterable

  b.可以使用isinstance()判断一个对象是否是可迭代对象

  c.可以直接作用于for-in循环的数据类型

  1>数据结构:list、set、tuple、dict、string

  2>generator【生成器】【(),函数结合yield】

  (2.)迭代器

  a.迭代器:Iterator

  b.不但可以作用于for-in循环,还可以使用next()函数将其中的元素获取出来,当获取完最后一个元素之后,当再次调用next方法,则会出现StopIteration错误,表示无法继续返回一个值

  c.可以使用isinstance()判断一个对象是否是迭代器

  结论:list、set、tuple、dict、string是可迭代对象,但是,不是迭代器,只有生成器才是迭代器

#导入模块
  #collections:包【文件夹】
  from collections import Iterable
  print(isinstance([],Iterable))
  print(isinstance((),Iterable))
  print(isinstance({},Iterable))
  print(isinstance((x for x in range(0,6)),Iterable))
  print(isinstance("",Iterable))
  print(isinstance(10,Iterable))
  print(isinstance(True,Iterable))
  print(isinstance(10.23,Iterable))

  (3.)将可迭代对象转换为迭代器

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

  iter():将可迭代对象转化为迭代器【主要针对list、set、tuple、dict、string】

 from collections import Iterator
  print(isinstance([],Iterator))
  print(isinstance((),Iterator))
  print(isinstance({},Iterator))
  print(isinstance((x for x in range(0,6)),Iterator)) #生成器
  print(isinstance("",Iterator))
  ge = (x for x in [12,24,435,455,4])
  for i in range(0,5):
  print(next(ge))
  #print(next(ge)) #StopIteration
  list1 = [12,2,434,3]
  #将列表转换为了迭代器
  a = iter(list1)
  print(next(a))
  print(isinstance(iter([]),Iterator))
  print(isinstance(iter(()),Iterator))
  print(isinstance(iter({}),Iterator))
  print(isinstance(iter(""),Iterator))
  for x in [12,34,3545]:
  print(x)
  it = iter([12,34,3545])
  while True:
  try:
  num = next(it)
  except StopIteration:
  break

  (4.)总结

  a.凡是可以使用for-in循环进行遍历元素的数据类型都是Iterable类型【可迭代对象】

  b.凡是可以使用next()的数据类型都是Iterator类型

  c.list、set、tuple、dict、string是Iterable类型,但是,可以通过iter()转换为

上一篇:HTML5工具初识之网页编辑器

下一篇:认识HTML

QQ技术交流群

千锋Python官方①群
790693323

加入群聊