首页 > 代码库 > python学习-扩展-isinstance()

python学习-扩展-isinstance()

isinstance()是一个内置的函数(BIF)。

它允许某个特定标识符是否包含某个特定类型的数据

如判断某个对象是不是列表、字典、整型等

>>> a = [1,2,3]
>>> b = 123
>>> c = {1:2,2:3}
>>> isinstance(a,list)
True
>>> isinstance(a,dict)
False
>>> isinstance(b,int)
True
>>> isinstance(c,dict)
True
>>>

实例:打印一个包含嵌套列表的列表的所有数据

 1 a = [1,2,c,b,[d,[5,6,[7,8]]],[3,4]]
 2 for i in a:
 3     while isinstance(i,list):
 4         for j in i:
 5             if isinstance(j,list) is False:
 6                 print(j)
 7             else:
 8                 i = j
 9                 break   #跳出最里层的for循环,执行while循环,否则,for循环走完,就会走最下面break,跳出整个while了
10         else:
11             break   #跳出while循环,不然i由于一直是列表,那么就不停执行最里面的for循环,打印3,4
12     else:
13         print(i)

结果:

1
2
c
b
d
5
6
7
8
3
4

补充:上面的功能也可以用递归函数解决,更加简洁

1 def list_cont(list_name):
2     for i in list_name:
3         if isinstance(i,list):
4             list_cont(i)
5         else:
6             print(i)

 

python学习-扩展-isinstance()