Python语法练习_迭代器2
Posted 陈万君Allen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python语法练习_迭代器2相关的知识,希望对你有一定的参考价值。
Python语法练习
注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hive Flume等等~写的都是纯干货,各种顶会的论文解读,一起进步。
今天继续和大家分享一下Python语法练习_迭代器2
#博学谷IT学习技术支持
文章目录
前言
迭代器案例2_自定义range函数
一.迭代器案例
通过此迭代器案例,熟悉掌握迭代器的运用
class MyRange(object):
def __init__(self, num):
self.num = num
def __iter__(self):
return MyRangeIter(self.num)
class MyRangeIter(object):
def __init__(self, stop_num):
self.stop_num = stop_num
self.index = 0
def __next__(self):
if self.index == self.stop_num:
raise StopIteration
temp = self.index
self.index += 1
return temp
if __name__ == '__main__':
for i in MyRange(10):
print(i)
二.迭代器yield方法转变
class MyRange(object):
def __init__(self, num):
self.num = num
def __iter__(self):
number = 0
while number < self.num:
yield number
number += 1
if __name__ == '__main__':
for i in MyRange(10):
print(i)
三.生成器
生成器 = 迭代器 + 可迭代对象
# 生成器原理
# class MyGenerator(object):
#
# def __init__(self, stop_value):
# self.stop_value = stop_value
# self.begin = 0
#
# def __iter__(self):
# return self
#
# def __next__(self):
# temp = self.begin
# if temp >= self.stop_value:
# raise StopIteration
# self.begin += 1
# return temp
# 定义一个生成器
def my_range(stop_value):
number = 0
while number < stop_value:
yield number
number += 1
if __name__ == '__main__':
my01 = my_range(10)
for i in my01:
print(i)
总结
迭代器练习2:通过迭代器实现range函数
以上是关于Python语法练习_迭代器2的主要内容,如果未能解决你的问题,请参考以下文章
Python高级语法——协程/迭代器/生成器——学习心得笔记
Leetcode练习(Python):栈类:第173题:二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。