趁着课余时间学点Python(七)一篇文了解迭代器
文章目录
- 前言
- 迭代器
- 迭代器的基本方法
- 小练习
- 结语
前言
好了,我们言归正传,啊,不对,我们继续道来。我们今天就说说迭代器!
这个词是不是看着比较高大上,感觉学不会?没事,今天我就带着你们征服他们!冲冲冲!
迭代器
迭代迭代,就是一个一个的输出,而迭代器则是python中的一个能够令高级数据类型中的元素一个一个显示的东西。有人会说,这不是可以通过循环来做的吗?
打个比方:我这有一个列表:[1, 3, 7, 2, 5, 9],你要获取数据的话,第一个想法是不是通过循环控制语句将其遍历,但是循环的话会使列表中的元素全部取出来。
而你又会想到通过下标取值,一个一个取,但是数据很少的时候,你能记得住下标,自己通过下标取值,到那时如果数据多达成千上万,上百万,你又怎么记得住呢?就算你记得住,你自己写,那不也挺麻烦的吗?
所以,我们这个时候就需要迭代器。我们可以用完这个值后,放在那,而迭代器会记住你上次使用的位置,等你下次使用,他就会将下一个取出来。
举个例子来理解:就像你参加了个比赛,按牌号一个一个的进行比赛,但是轮到你的时候,突发状况,比赛终止,你被通知两个月后再来比赛,而评委,或者说他们手上的比赛记录就是迭代器,可以在两个月后精准的找到你。
迭代器的基本方法
iter()
作用是将你的可迭代对象变成迭代器
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)
结语
这只是简单运用,本篇其实还打算写一下生成器和装饰器,但是鉴于还没学函数,就罢了!
兴趣是最好的老师,坚持是不变的真理。
学习不要急躁,一步一个脚印,踏踏实实的往前走。
每天进步一点点,日积月累之下,你就会发现自己已经变得很厉害了。
我是布小禅,一枚自学萌新,跟着我每天进步一点点吧!
说了这么多暂时也就够了,那么就告辞吧
趁着课余时间学点Python(七)一篇文了解迭代器相关推荐
- 趁着课余时间学点Python(十五)有趣的小模块
一.Python模块与包 python中模块与包的含义 1. Python模块与包 模块是单个的py文件,包是包含多个py文件的文件夹 1.1 模块 模块是一个py文件 我们自己创建一个py文件就是一 ...
- 趁着课余时间学点Python(八)函数的简单理解
文章目录 前言 函数 无参函数 定义一个无参函数 调用这个无参函数 把我们的例子打出来 有参函数 定义和调用 实例 return的使用 例子 结语 前言 来了,他来了,函数篇! 学了函数才算是能推动p ...
- 趁着课余时间学点Python(十)面向对象的理解(前奏)
文章目录 前言 正文 面向过程 面向对象 类和对象 类 构造方法 对象 用Python代码展示洗衣服例子 面向过程洗衣服 面向对象洗衣服 结语 前言 说起来这一篇本打算早就写的,因博主沉迷小说耽搁了 ...
- 趁着课余时间学点Python(十二)面向对象的理解(结局)
文章目录 前言 1. 私有化 1.1 属性私有化 1.2 方法私有化 2. 重写 3. 魔术方法 3.1 __init__方法 3.2 __str__方法 3.3 __del__方法 3.4 __ne ...
- 趁着课余时间学点Python(十四)文件操作
文章目录 ☀️ 前言 ☀️
- 趁着课余时间学点Python(十三)异常处理
文章目录 前言 一.异常/错误 1 编译时错误 2. 运行时错误 3. 逻辑型错误 二.异常处理 1. 捕获异常 1.1 try except finally语句 1.2 try except els ...
- 趁着课余时间学点Python(六)终止循环,阻断循环
文章目录 前言 条件控制语句的补充 break continue return 结语 前言 如果我需要设置一个死循环,然后靠条件来终止,怎么办? 一个很简单的问题,但是我却没有说,这一篇本应该在分支控 ...
- 趁着课余时间学点Python(九)函数的进阶 生成器 装饰器的理解
文章目录 前言 生成器 为什么使用 格式 嵌套函数 装饰器 使用场景 使用 结语 前言 相信大家已经对函数有了一定的理解了吧,那么来看看生成器和装饰器吧 生成器 按道理来说,生成器应该是和迭代器一起讲 ...
- 趁着课余时间学点Python(十六)多线程编程
文章目录 ☀️ 前言 ☀️
最新文章
- java反射 基本知识
- Cascade EF-GAN: Progressive Facial Expression Editing with Local Focuses 论文解读
- eclipse怎么更改tomcat的上下文访问路径
- oracle ash介绍,Oracle ---- 性能调查之ASH(一)
- Mybatis的动态sql(五)
- 蓝桥杯 入门训练 序列求和
- 软件设计师备考知识03
- GO语言学习之路22
- 聚宽-彼得·林奇的成功投资策略
- padavan mysql_newifi3 用Padavan(老毛子)固件 搭建web 尝试
- 三种语句可以恢复Oracle数据库误删除数据
- 最热开源实时提升动画画质MPV+Anime4K使用方法
- SQLZOO练习答案(一):SELECT names/zh
- BZOJ3711: [PA2014]Druzyny
- Lifeograph 0.7.3发布 基于gtkmm的轻量电子日记本
- 某银行 科技岗位 数据工程师 面试题总结
- yolov3算法中关于loss={'yolo_loss': lambda y_true, y_pred: y_pred}的理解
- c语言编写加法程序代码,矩阵加法 (C语言代码)
- vue中输入框的限制,最多三位小数~~
- 消除VS2010创建C/C++项目时自动生成的臃肿文件的方法