Python 自定义iterator生成器

本文深入探讨了Python中的迭代器与生成器概念,包括自定义迭代器类的实现方式,以及如何使用生成器函数进行高效的数据处理。通过具体示例,如计数版迭代器和CSV文件读取器,展示了迭代器和生成器在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#计数版
class countdown(object):
	def __init__(self,start):
		self.start = start
	def __iter__(self):
		return countdown_iter(self.start)

class countdown_iter(object):
	def __init__(self, count):
		self.count = count
	def __next__(self):
		if self.count <= 0:
			raise StopIteration
		r = self.count
		self.count -= 1
		return r

  

#pandas读取多个文件
import pandas as pd

class read_csv_paths(object):
	def __init__(self,paths):
		self.paths = paths
	def __iter__(self):
		return read_csv_iter(self.paths)

class read_csv_iter(object):
	def __init__(self, paths):
		self.paths = paths
	def __next__(self):
		if len(self.paths)<=0:
			raise StopIteration
		path=self.paths.pop()
		#print(path)
		df=pd.read_csv(path,low_memory=False,dtype='object')
		return df

 

#generator版
def countdown(n):
	print("Counting down from", n)
	while n > 0:
		yield n
		n -= 1

  

  

转载于:https://www.cnblogs.com/mahailuo/p/10207620.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值