可以直接作用于for循环的数据类型有以下几种:

一类是集合数据类型,如listtupledictsetstr等;

一类是generator,包括生成器和带yield的generator function。

这些可以直接作用于for循环的对象统称为可迭代对象:Iterable

可以使用isinstance()判断一个对象是否是Iterable对象:

from collections import Iterable

def fib(max):
    n,a,b=0,0,1
    while n<max:
        #print(b)
        yield b
        a,b = b,a+b
        n=n+1
    return 'done'

print(isinstance([],Iterable)) # True
print(isinstance((),Iterable)) # True
print(isinstance({},Iterable)) # True
print(isinstance(set([]),Iterable)) # True
print(isinstance('abc',Iterable)) # True
print(isinstance((x for x in range(10)),Iterable)) # True
print(isinstance(fib(10),Iterable)) # True
print(isinstance(100,Iterable)) # False
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-21
  • 2022-12-23
  • 2021-08-12
猜你喜欢
  • 2022-12-23
  • 2021-11-16
  • 2021-12-22
  • 2021-07-14
  • 2021-06-23
  • 2022-01-26
相关资源
相似解决方案