Python迭代器的理解

举报
布小禅 发表于 2021/06/30 07:58:43 2021/06/30
【摘要】 迭代器的简单理解

前言

好了,我们言归正传,啊,不对,我们继续道来。我们今天就说说迭代器!

这个词是不是看着比较高大上,感觉学不会?没事,今天我就带着你们征服他们!冲冲冲!

迭代器

迭代迭代,就是一个一个的输出,而迭代器则是python中的一个能够令高级数据类型中的元素一个一个显示的东西。有人会说,这不是可以通过循环来做的吗?

打个比方:我这有一个列表:[1, 3, 7, 2, 5, 9],你要获取数据的话,第一个想法是不是通过循环控制语句将其遍历,但是循环的话会使列表中的元素全部取出来。

而你又会想到通过下标取值,一个一个取,但是数据很少的时候,你能记得住下标,自己通过下标取值,到那时如果数据多达成千上万,上百万,你又怎么记得住呢?就算你记得住,你自己写,那不也挺麻烦的吗?

所以,我们这个时候就需要迭代器。我们可以用完这个值后,放在那,而迭代器会记住你上次使用的位置,等你下次使用,他就会将下一个取出来。

举个例子来理解:就像你参加了个比赛,按牌号一个一个的进行比赛,但是轮到你的时候,突发状况,比赛终止,你被通知两个月后再来比赛,而评委,或者说他们手上的比赛记录就是迭代器,可以在两个月后精准的找到你。

迭代器的基本方法

  1. iter()

    作用是将你的可迭代对象变成迭代器

  2. next()

    作用是从你的迭代器取值。

看看代码:

# 定义一个列表
li = [1, 2, 3, 4, 5, 6]
# 将你的列表变成迭代器
it_li = iter(li)
# 取出你的迭代器的第一个值
first = next(it_li)
print(f"号码牌为{first}的选手")
# 取出第二个
second = next(it_li)
print(f"号码牌为{second}的选手")
# 到你了,比赛暂停两个月
third = next(it_li)
print(f"号码牌为{third}的选手")

对,刚刚叭叭叭说了一大堆,其实迭代器就是这玩意!–>it_li

next()则是迭代器的使用方法

就这?就这?

在这里插入图片描述

这就是迭代器?听着名字我还以为多高大上呢,结果就这啊!

也不过如此嘛,小小迭代器,也想阻挡我学习Python?

小练习

生成1-100的数,放入一个列表,并转为迭代器,然后用循环展现出来

每次循环穿插一句“已经经过了xxx年”xxx为每个迭代的值

li = []
for i in range(100):
    li.append(i+1)
it_li = iter(li)
for i in it_li:
    nian = next(it_li)
    print(f"已经过了{nian}年了")
    print(nian)

结语

这只是简单运用,本篇其实还打算写一下生成器和装饰器,但是鉴于还没学函数,就罢了!

兴趣是最好的老师,坚持是不变的真理。
学习不要急躁,一步一个脚印,踏踏实实的往前走。
每天进步一点点,日积月累之下,你就会发现自己已经变得很厉害了。

我是布小禅,一枚自学萌新,跟着我每天进步一点点吧!

说了这么多暂时也就够了,那么就告辞吧

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。