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
  • 相关阅读:
    git 常用命令
    flask汇总
    flask自定义转换器
    css,js,jquery的载入方式和属性控制
    python import xx和from xx import x 中的坑
    CPython中的GIL
    python装饰器的参数传递
    python函数中的参数(关键字参数,默认参数,位置参数,不定长参数)
    python 闭包
    Java数据类型和对象的引用
  • 原文地址:https://www.cnblogs.com/cq90/p/6882982.html
Copyright © 2011-2022 走看看