python中的迭代、可迭代对象、迭代器、生成器是什么?

一、迭代

  • python中可以用for循环使用取值操作过程。
  • 比如在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple ,这种遍历就是迭代。

二、可迭代对象(iterable)

  • 可以使用for循环遍历的对象,我们称之为可迭代对象
  • 可迭代对象有以下几种:
    1.字符串
for char in 'test' :
    print ( char , end = ' ' )

2.列表

list1 = [1,2,3,4,5]
for num1 in list1 :
    print ( num1 , end = ' ' )

3.字典

dict1 = {'name':'hqhqhq','age':'25','sex':'男'}
for key in dict1:
    print(key, end=' ')
for value in dict1.values():
    print(value, end=' ')

4.元组(同列表)

三、迭代器(itertor)

  • 迭代器是一个可以记住遍历的位置的对象。
  • 迭代器对象从集合的第一个元素开始访问数据,直到所有数据访问结束
  • 迭代器只能往前不会后退
  • 迭代器有两个基本函数iter()和next()
  • 列表或元组对象都可用于创建迭代器,迭代器对象可以使用常规 for 语句进行遍历,也可以使用 next() 函数来遍历。
  • 在 Python 中, for 用来实现迭代,它的结构是 for ... in ...,其在迭代时会产生迭代器,实际是将可迭代对象转换成迭代器,再重复调用 next() 方法实现的。
    例如:
i = [1,2,3,4,5]
it = iter(i)
print(it.__next__())
print(it.__next__())
print(it.__next__())
print(it.__next__())
print(it.__next__())

再如:

it = iter([1, 2, 3, 4, 5])
while True:
    try:
        i = next(it)
        print(i)
    except StopIteration:
        break

四、Python内置模块itertools

五、生成器(generator)

  • 生成器(generator)是一个特殊的迭代器
  • 如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。
  • 在执行过程中,遇到yield就中断,下次又继续执行。
  • 生成器生成大量数据的时候可帮助系统节省内存
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容