一、迭代
1、迭代的概念
使用for循环遍历取值的过程叫做迭代
2、可迭代对象
使用for循环遍历取值的对象叫做可迭代对象,比如:元祖、列表、字典、集合、range、字符串
3、判断对象是否是可迭代对象
#元组、列表、字典、字符串、集合、range都是可迭代对象
from collections import Iterable
#判断对象是否是指定类型
result = isinstance(要判断的对象,Iterable)
print("是否是可迭代对象:",result)
4、自定义可迭代对象
自定义可迭代对象:在类里面定义__iter__方法创建的对象就是可迭代对象
自定义可迭代类型代码
form collections import Iterable
#自定义可迭代对象,在类里面定义__iter__方法创建的对象就是可迭代对象
class MyList(object):
def __init__(self):
self.my_list = list()
#添加指定元素
def append_item(self,item):
self.my_list.append(item)
def __iter__(self):
#可迭代对象的本质:遍历可迭代对象的时候其实获取的是可迭代对象的迭代器,然后通过迭代器获对象中的数据
pass
my_list = MyList()
my_list.append_item(1)
my_list.append_item(2)
result = isinstance(my_list,Iterable)
print(result)
for value in my_list:
print(value)
执行结果:
Traceback (most recent call last):
True
File "/Users/hbin/Desktop/untitled/aa.py", line 24, in <module>
for value in my_list:
TypeError: iter() returned non-iterator of type 'NoneType'
执行结果可以看出,遍历可迭代对象依次获取数据需要迭代器