博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第八章、函数进阶之迭代器03
阅读量:5291 次
发布时间:2019-06-14

本文共 1055 字,大约阅读时间需要 3 分钟。

目录

第八章、函数进阶之迭代器03

1. 什么是迭代

迭代更新换代,基于上一次的结果退出下一次的结果

2.可迭代对象

具有__iter__()方法的就是可迭代对象,除了数字类型和函数类型都是可迭代对象

x = 1  # 不可迭代对象s = 'jiayi'  # 可迭代对象lt = [1, 2, 3]  # 可迭代对象dic = {'a': 1, 'b': 2}  # 可迭代对象tup = (1,)  # 元组只有一个元素必须得加逗号# 可迭代对象se = {1, 2, 3}  # 可迭代对象f = open('time.py')  # 可迭代对象

--iter--和--next--

str="ypp"print(type(str))#
str_iter=str.__iter__()#把str变为迭代器对象print(type(str_iter))#
print(str_iter.__next__()) #y 基于索引(基于上一次结果),通过__next__进行迭代print(s_iter.__next__())#p

3.for循环原理(迭代原理)

str="ypp"print(type(str))#
str_iter=str.__iter__()#把str变为迭代器对象print(type(str_iter))#
for i in str: print(i) #基于索引(基于上一次结果),通过__next__进行迭代\-------------------------------------------------------while 1: try: print(str_iter.__next__()) except StopIteration: break
yppypp
  1. 把str(可迭代对象/迭代器对象)用__iter__\转换成迭代器对象,就能使用迭代器对象__next__的方法了
  2. 使用__next__取出迭代器的所有值
  3. 使用__next__取尽迭代器全部值了后会报错,通过异常捕捉退出while循环

可迭代对象无论迭代多少次,内存地址都不会变化

迭代器对象一定时间可迭代对象,可迭代对象不一定是迭代器对象

转载于:https://www.cnblogs.com/demiao/p/11341865.html

你可能感兴趣的文章
uva 11468 Substring
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
BootStrap2学习日记2--将固定布局换成响应式布局
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
R语言-rnorm函数
查看>>
Spark的启动进程详解
查看>>
Java 字符终端上获取输入三种方式
查看>>
javascript 简单工厂
查看>>
java调用oracle存储过程,返回结果集
查看>>
使用命令创建数据库和表
查看>>
数据库的高级查询
查看>>
HttpClient(一)-- HelloWorld
查看>>
dump调试函数
查看>>
Android 利用Sharp样式设置文本框EditText圆角形状
查看>>
[YTU]_2443 ( C++习题 复数类--重载运算符3+)
查看>>
sdut_1189
查看>>
归并排序
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
走遍美国 —— 各州及其别名
查看>>