您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

关于python中可迭代对象和迭代器的一些理解!

5b51 2022/1/14 8:24:32 python 字数 4142 阅读 651 来源 www.jb51.cc/python

很多python教程中,对python的解释不容易理解,本文记录自己的理解和体会,是对迭代器和生成器的初步理解

概述

很多 python 教程中,对 python 的解释不容易理解,本文记录自己的理解和体会,是对迭代器和生成器的初步理解

一、关于迭代的认识

给定一个列表、元祖、字典、甚至字符串,我们使用 for 去遍历,这样我们叫迭代

list1 = ['哈哈','西西','嘻嘻']
for x in list1:
 print(x)
list1 = ['哈哈','嘻嘻']
for index,value in enumerate(list1):
 print(index,value)
dict1 = {'name': '张三','age': 20,'gender': '男'}
for item in dict1:
 print(item)
进群:960410445  即可获取数十套PDF哦!
dict1 = {'name': '张三','gender': '男'}
for key in dict1.keys():
 print(key)
dict1 = {'name': '张三','gender': '男'}
for value in dict1.values():
 print(value)
dict1 = {'name': '张三','gender': '男'}
for k,v in dict1.items():
 print(k,v)

二、可迭代与迭代器的区别

from collections.abc import Iterator,Iterable
# Iterable 表示可迭代对象
# Iterator 表示迭代器
list1 = [1,2,3]
print(isinstance(list1,Iterator))
print(isinstance(list1,Iterable))
print(isinstance(iter(list1),Iterator))

三、自己实现一个可迭代的对象

from collections.abc import Iterator,Iterable
class Company(object):
 def __init__(self,employee_list):
 self.employee = employee_list
 def __getitem__(self,item):
 return self.employee[item]
if __name__ == "__main__":
 company = Company(['张三','李四','王五'])
 print(isinstance(company,Iterable))
 print(isinstance(company,Iterator))
 print(isinstance(iter(company),Iterator))
 for item in company:
 print(item)
from collections.abc import Iterator,employee_list):
 self.employee = employee_list
 self.index = 0
 def __iter__(self):
 return self

def next(self):
try:
current_val = self.employee[self.index]
except IndexError:
raise StopIteration
self.index += 1
return current_val
if name == "main":
company = Company(['张三',Iterator))
for item in company:
print(item)

def next(self):
try:
current_val = self.employee[self.index]
except IndexError:
raise StopIteration
self.index += 1
return current_val
if name == "main":
company = Company(['张三',Iterator))
for item in company:
print(item)

def next(self):
try:
current_val = self.employee[self.index]
except IndexError:
raise StopIteration
self.index += 1
return current_val
if name == "main":
company = Company(['张三',Iterator))
for item in company:
print(item)

总结

以上是编程之家为你收集整理的关于python中可迭代对象和迭代器的一些理解!全部内容,希望文章能够帮你解决关于python中可迭代对象和迭代器的一些理解!所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶