推导式/自省

Posted zhangjx2457

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推导式/自省相关的知识,希望对你有一定的参考价值。

一、列表推导式

如何生成一个[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

 



以上是关于推导式/自省的主要内容,如果未能解决你的问题,请参考以下文章

测开之数据类型进阶篇・第三篇《推导式》

题型:python

Python入门-4控制语句:10推导式创建序列-列表推导式-字典推导式-集合推导式-生成器推导式

推导式

推导式

推导式