• 二、推导式/自省


    一、列表推导式

    如何生成一个[data0、data1、data2.....data99]的列表??

    循环方法:

    list1=[]
    for i in range(100):
        list1.append('data{}'.format(i))
    print("list1的值为:",list1)

    用列表推导式:

    list2 = ["data{}".format(i) for i in range(100)]
    print(my_list1)

    eg:1-100能被3整除但是不能被2整除的数

    list3 = [i for i in range(100) if not(i % 3) and (i % 2)] 
    print(list3)  
    #结果
    [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

     二、字典推导式

    有一个列表li,把他转成一个元素为下标为键,值为元素值的字典格式的数据
    li = ['a','b','c','d','e','f','g']

    #循环方法:
    dict1={}
    for i,j in enumerate(li):
        dict1[i]=j
    print(dict1)
    #推导式方式:
    print({i:j for i,j in enumerate(li)})
    结果:
    {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g'}

    将下面字符串格式的数据,改成字典类型的数据
    str="name=zjx;age=18;sex=girl;tel=18822113232"

    #推导式:
    dict1={item.split("=")[0]:item.split("=")[1] for item in str.split(";")}
    print(dict1)

    三、自省

     
    自省就是程序运行时能够知道对象的类型, Python中比较常见的自省(introspection)机制(函数用法)有: dir(),type(), hasattr(), isinstance(),通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。
    dir()
    dir() 函数可能是 Python 自省机制中最著名的部分了。它返回传递给它的任何对象的属性名称经过排序的列表。如果不指定对象,则 dir() 返回当前作用域中的名称。让我们将 dir() 函数应用于 keyword 模块,并观察它揭示了什么:
    >>> import keyword
    >>> dir(keyword)
    ['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'iskeyword', 'kwlist', 'main']
    type()
    type() 函数有助于我们确定对象是字符串还是整数,或是其它类型的对象。它通过返回类型对象来做到这一点,可以将这个类型对象与 types 模块中定义的类型相比较:
    >>> type(42)<class 'int'>
    >>> type([])<class 'list'>
    isinstance()
    可以使用 isinstance() 函数测试对象,以确定它是否是某个特定类型或定制类的实例:
    >>> isinstance("python", str)
    True
  • 相关阅读:
    03_02_leetcode_24_删除有序数组的重复项
    03_02_leetcode_141_环形链表
    03_02_leetcode_24_两两交换链表中的结点
    Solution -「ZJOI 2014」力
    Solution -「GXOI / GZOI 2019」宝牌一大堆
    Solution -「CSP 2019」Centroid
    Solution -「CSP 2019」Partition
    Note -「Suffix Automaton」SAM
    Solution -「BalticOI 2004」Sequence
    Solution -「BZOJ 3779」重组病毒
  • 原文地址:https://www.cnblogs.com/zhangjx2457/p/14026976.html
Copyright © 2020-2023  润新知