判断是否是可迭代的
from collections import Iterable
a = [1, 2, 3, 4]
b = (4, 5, 6, 7)
c = {"A", "B", "C", "D"}
d = {"name": "weihu", "age": 18}
# 判断a列表是不是可迭代的对象
print(isinstance(a, Iterable))
print(isinstance(b, Iterable))
print(isinstance(c, Iterable))
print(isinstance(d, Iterable))
把可迭代的容器,转化成迭代器
mylist = [1, 2, 3, 4]
# 把列表变成一个迭代器
mylistiter = mylist.__iter__()
# 挨个挨个取值
print(mylistiter.__next__())
print(mylistiter.__next__())
print(mylistiter.__next__())
print(mylistiter.__next__())
# 取到最后一个值后,再调用__next__()方法会报异常
# print(mylistiter.__next__())
迭代器遵循迭代器协议:必须拥有__iter__方法和__next__方法。
可迭代对象:
拥有__iter__方法
特点:惰性运算
例如:range(),str,list,tuple,dict,set
迭代器Iterator:
拥有__iter__方法和__next__方法
例如:iter(range()),iter(str),iter(list),iter(tuple),iter(dict),iter(set),reversed(list_o),map(func,list_o),filter(func,list_o),file_o
浙公网安备 33010602011771号