Skip to content

Commit f11ad6f

Browse files
authored
练习高级特性的迭代器
1 parent c239b1e commit f11ad6f

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

test7.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# 练习高级特性的迭代器
2+
from collections import Iterable, Iterator
3+
4+
l = [1, 3, 5]
5+
t = (1, 6, 5)
6+
s = 'dsjk'
7+
# 判断是否可迭代
8+
print(isinstance(l, Iterable))
9+
print(isinstance(t, Iterable))
10+
print(isinstance(s, Iterable))
11+
# 判断是否是迭代器,可以看出,这三个都不是迭代器
12+
print(isinstance(l, Iterator))
13+
print(isinstance(t, Iterator))
14+
print(isinstance(s, Iterator))
15+
# 判断生成器是否是迭代器,是的
16+
print(isinstance((x for x in range(3)), Iterator))
17+
# 同时也是可迭代的
18+
print(isinstance((x for x in range(3)), Iterable))
19+
20+
21+
# 我们可以将list,tuple,和string转成迭代器,这时就是迭代器了
22+
print(isinstance(iter(l), Iterator))
23+
print(isinstance(iter(t), Iterator))
24+
print(isinstance(iter(s), Iterator))
25+
26+
27+
# 其实for循环就是通过next来不断获取下一个元素的,直到抛出异常StopIteration

0 commit comments

Comments
 (0)