1.迭代器
迭代器是一种模式、使得序列类型的数据结构的遍历行为与被遍历的对象分离,即咱们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就能够遍历这个对象的内部元素。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
Python中,迭代是通过for ... in来完成的,而很多语言比如C语言,迭代list是通过下标完成的。
实例:
# -*- coding: utf-8 -*-
# @Time : 2022/3/29 21:18
# @File : iterator.py
# @Software : PyCharm
fruits = ['grape', 'watermelon', 'apple', 'banana', 'orange']
for f in fruits:
print(f)
运行结果:
grape
watermelon
apple
banana
orange
可以看出,Python的for循环抽象程度要高于C的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。
实例:
person={"name":"zhangsan","age":18,"address":"beijing"}
for key in person:
print(key)
print(key,"=",person[key])
运行结果:
name
name = zhangsan
age
age = 18
address
address = beijing
如何判断一个对象是可迭代对象呢?方法是通过collections.abc模块的Iterable类型判断。 例如:
# -*- coding: utf-8 -*-
# @Time : 2022/3/29 21:18
# @File : iterator.py
# @Software : PyCharm
from collections.abc import Iterable
fruits = ['grape', 'watermelon', 'apple', 'banana', 'orange']
person={"name":"zhangsan","age":18,"address":"beijing"}
print(isinstance('abc', Iterable))
print(isinstance(fruits, Iterable))
print(isinstance(person, Iterable))
print(isinstance(10000, Iterable))
运行结果:
True
True
True
False