Python可迭代物件和迭代器
阿新 • • 發佈:2022-03-26
1.可迭代物件
大白話:可以重複迭代的東西
專業話:實現了__iter__方法的物件就是可迭代物件
實現了__iter__方法的物件就叫做可迭代物件,__iter__方法的作用就是返回一個迭代器物件。 直觀理解就是能用for迴圈進行迭代的物件就是可迭代物件。
比如:字串、列表、元組、字典、集合、生成器等,都是可迭代物件。
(1)如何判斷是否是可迭代物件? ------> isinstance(物件,Iterable)
1 from collections.abc import Iterable
2
3 list1 = [1, 2, 3, 1, 2]
4 f = isinstance(list1, Iterable)
5 print(f) # >> True
6
7 f = isinstance('abc', Iterable)
8 print(f) # >> True
9
10 f = isinstance(100, Iterable)
11 print(f) # >> False
12
13 g = (x + 1 for x in range(10))
14 f = isinstance(g, Iterable)
15 print(f) # >> True
2.迭代器
迭代是訪問集合元素的一種方式迭代器是一個可以記住遍歷的位置的物件。迭代器物件從集合的第一個元
素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前會後退。
可以被next()函液呼叫並不斷返回下一個值的物件稱為迭代器:Iterator.
1 list1 = [1, 2, 3, 4, 5]
2 list1 = iter(list1)
3 print(next(list1))
4
5 a = 'abd'
6 a = iter(a)
7 print(next(a))
8
9 dict1 = {'a': 'A', 'b': 'B'}
10 dict1 = iter(dict1)
11 print(next(dict1))
12
13 tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')
14 tuple1 = iter(tuple1)
15 print(tuple1) # >> <tuple_iterator object at 0x000001A9380ED988>
16 print(next(tuple1)) # >> a