语法糖让程序更加简洁,有更高的可读性
连续比较 1 < x < 10 (x>1 and x<10)
三元表达式(结果一 if 判断条件 else 结果二)
推导表达式
推导表达式是Python中常见的语法糖,在很多的数据处理场景中,我们可能会使用的到。最常见的就是列表推导表达式,可以用来过滤、处理列表中的子项并输出为一个新的列表。
列表推导式
list = [1,2,3,4,5,6,7,7,6,6,5,5]
print('array before:', list)
array = [i for i in list if i % 2 != 0] #列表推导表达式
print('array after:', array)
字典推导式
q = [1,2,3,4,5,6,7,8,7,8]
print('array before:', q)
array = {i: i * 2 for i in q if i % 2 != 0} #字典推导表达式
print('array after:', array)
集合推导式
q = [1,2,3,4,5,6,7,8,8,9,9,8,4]
print('array before:' q)
array = {i for i in 1 if i % 2 != 0} #集合推导表达式
print('arrar after:', array)
生成器推导表达式
q = [1,2,3,4,5,6,7,7,8,8]
print('array before:', 1)
array = (i for i in q if i % 2 != 0)
print('array after:', array)
迭代器对象(Iterator Object)
把一个类作为一个迭代器使用需要在类中实现的两个方法 __iter__() 与 __next__()
生成器函数(Generator Function)
在python中,使用了yield的函数被称为生成器(generator)
def example_generator(q):
"""生成器"""
for i in q:
yield i * 2
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时从当前位置继续运行
其实for循环就在调用next方法,next是一个相对底层的方法,for循环基于它
调用一个生成器函数(Generator Function),返回的是一个迭代器对象(Iterator Object)
装饰器
def example_decorator(func):
"""装饰器"""
def inner():
func()
return inner