迭代器
迭代: 器:工具
可迭代对象
list,dict,str,set,tuple -- 可迭代对象 使用灵活
方法一:
list.__iter__()
dict.__iter__()
str.__iter__()
set.__iter__()
tuple.__iter__()
方法二:查看源码
方法三:
print("__iter__" in dir(list))
官方声明只要具有__iter__方法的就是可迭代对象
可迭代对象的优点:
1、使用灵活
2、直接查看值
可迭代对象的缺点:
1、消耗内存
list,tuple,str -- 索引
dict -- 键
set -- 直接取值
迭代器:
官方声明只要具有__iter__()方法 next()方法就是迭代器
f = open("xxx", "w")
f.__iter__()
f.__next__()
将可迭代对象转换成迭代器
lst = [1, 2, 3, 4, 5]
new_lst = lst.__iter__() # 将可迭代对象转换成迭代器
new_lst.__iter__()
new_lst.__next__()
s = "yulin"
new_str = s.__iter__()
print(new_str)
new_str.__iter__()
new_str.__next__()
s = "yulin"
new_str = s.__iter__()
new_str.__iter__()
print(new_str.__next__())
print(new_str.__next__())
print(new_str.__next__())
for循环的原理(更改版):
s = "yulin"
s = [1, 2, 3, 4, 5, 6, 7, 8]
count = len(s)
new_s = s.__iter__()
while count:
print(new_s.__next__())
count -= 1
s = "yulin"
new_s = s.__iter__()
print(new_s.__next__())
print(new_s.__next__())
print(new_s.__next__())
print(new_s.__next__())
print(new_s.__next__())
print(new_s.__next__()) # 超过就报错
for循环真实本质:
s = "yulin"
new_s = s.__iter__()
while True:
try:
print(new_s.__next__())
except StopIteration:
break
except Exception: # 面试不用
print("我是万能的!")
break

浙公网安备 33010602011771号