# Python课程第九天_下午_课程笔记(迭代器和可迭代对象)

Day_09_PM_Iterators_And_Iteratable_Objects

from collections.abc import Iterable
from collections.abc import Iterator

# 可迭代对象
#   可以使用for-in遍历的就是可迭代对象
#   有: list, tuple,dict,set,str

# type() : 获取数据类型
print(type(10))  # <class 'int'>

# isinstance(): 实例, 判断某个对象是否属于某个(或多个)类
print(isinstance(10, int))  # True
print(isinstance('abc', (int, float, str)))  # True

print(isinstance([], Iterable))  # True
print(isinstance((), Iterable))  # True
print(isinstance({}, Iterable))  # True
print(isinstance({1}, Iterable))  # True
print(isinstance('abc', Iterable))  # True
print(isinstance((i for i in range(2)), Iterable))  # True

print(isinstance(10, Iterable))  # False

print()

# 迭代器; 既可以使用for-in循环, 也可以使用next()调用
print(isinstance([], Iterator))  # False
print(isinstance((), Iterator))  # False
print(isinstance({}, Iterator))  # False
print(isinstance({1}, Iterator))  # False
print(isinstance('abc', Iterator))  # False
print(isinstance((i for i in range(2)), Iterator))  # True

print(isinstance(10, Iterator))  # False

# Python: 一切皆为对象

# iter() : 将可迭代对象 => 迭代器
# list() : 迭代器 => 可迭代对象(列表)
l = [1,2,3]
t = iter(l)

# print(list(t))  # [1, 2, 3]

# 可以使用for-in循环
for i in t:
print(i)

# 也可以使用next调用
# print(next(t))  # 1
# print(next(t))  # 2
# print(next(t))  # 3

01-05 700
05-23 22
05-29 194
10-12 93
07-25 99
08-15