前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础(11)——迭代器&生成器

Python基础(11)——迭代器&生成器

作者头像
羊羽shine
发布2019-05-28 13:35:54
2250
发布2019-05-28 13:35:54
举报
文章被收录于专栏:Golang开发

迭代器

迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

  1. 可迭代对象 以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等; 一类是 generator ,包括生成器和带 yield 的generator function。 这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。
isinstance
代码语言:javascript
复制
from collections import Iterable
str = "Hello Python"
print(isinstance(str,Iterable))
dir

判断是不是含有iter

代码语言:javascript
复制
str = 'Hello Python' 
print('__iter__' in dir(str))
iter()函数

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。 生成器都是 Iterator 对象,但 list 、 dict 、 str 虽然是 Iterable ,却不是 Iterator 。把 list 、 dict 、 str 等 Iterable 变成 Iterator 可以使用 iter() 函数: 总结 凡是可作用于 for 循环的对象都是 Iterable 类型; 凡是可作用于 next() 函数的对象都是 Iterator 类型 集合数据类型如 list 、 dict 、 str 等是 Iterable 但不是 Iterator ,不过可以通过 iter() 函数获得一个 Iterator 对象。

生成器

代码语言:javascript
复制
for i in range(1, 10, 1):
    print(i)

def customRange(star, stop, step):
    x = star
    while x < stop:
        yield x
        x += step

for i in customRange(1, 10, 0.5):
    print(i)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.10.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 迭代器
    • isinstance
      • dir
        • iter()函数
        • 生成器
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档