Python 可迭代的一定是迭代器吗

不是

迭代器:能够用next()生成元素的就是迭代器

isinstance() 函数来判断一个对象是否是一个已知的类型

Iterable 参数判断这个对象是否为可迭代类型

g=(x+1 for x in range(10))

print(isinstance(g,Iterable))

list1 = [1,2,3,4,5]

print(isinstance(list1,Iterable))

try:
    print(next(list1))
except Exception as e:
    print(e)

在这里插入图片描述
由上栗可知,list可迭代,但不是一个迭代器。

我们可使用Iter将其转换为迭代器

print(isinstance(iter(list1),Iterable))
print(next(iter(list1)))

在这里插入图片描述