1、迭代对象
# coding=UTF8
from collections.abc import Iterable
# 判断一个对象是否为可迭代对象
print(isinstance('abc', Iterable))
print(isinstance({1, 2, 3}, Iterable))
print(isinstance(1024, Iterable))
print('------------------------------------------------')
for i in 'Hello':
print(i)
print('------------------------------------------------')
def reserve(data):
for i in range(len(data)-1, -1, -1):
yield data[i]
for char in reserve('hello'):
print(char)
输出结果:
2、自定义迭代器
# coding=UTF8
# 迭代器需要具有 __iter__() 和 __next__() 两个方法
class MyIterator:
def __init__(self):
self.s = '程序之间'
self.i = 0
def __iter__(self): # 返回迭代器对象本身
return self
def __next__(self): # 返回下一项数据
if self.i < 4:
n = self.s[self.i]
self.i += 1
return n
else:
raise StopIteration
mi = iter(MyIterator())
# print(MyIterator().i)
for i in mi:
print(i)
输出结果: