zoukankan      html  css  js  c++  java
  • 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)

     继续扩展(列表中的第一层打印时不缩进,第二层缩进一个Tab,依次类推)

    1 def list_cont(list_name,level = 0):#默认第一次缩进0个Tab
    2     # level = 0
    3     for i in list_name:
    4         if isinstance(i,list):
    5             list_cont(i,level+1)
    6         else:
    7             print('%s%s'%('	'*level,i))
    8 a = [1,2,'c','b',['d',[5,6,[7,8]]],[3,4]]
    9 list_cont(a)

    结果

     1 1
     2 2
     3 c
     4 b
     5     d
     6         5
     7         6
     8             7
     9             8
    10     3
    11     4
  • 相关阅读:
    [Luogu5042/UOJ #100][国家集训队互测2015]丢失的题面/ydc的题面
    [51nod1773]A国的贸易
    [GZOI2019&GXOI2019]省选GG记
    [51nod1659]数方块
    [51nod1052]最大M子段和
    [51nod1201]整数划分
    [51nod1084]矩阵取数问题 V2
    [51nod1020]逆序排列
    [BZOJ3000]Big Number
    [BZOJ1684][Usaco2005 Oct]Close Encounter
  • 原文地址:https://www.cnblogs.com/cq90/p/6882982.html
Copyright © 2011-2022 走看看