目录:
1.推导式
2.生成器推导式
3.lambda表达式
4.内置函数
推导式(列表推导式、字典推导式、集合推导式、生成器推导式):
列表推导式:[结果 for循环 if判断]
示例:
#获取10之内的奇数
list = [i for i in range(10) if i % 2 == 1]
结果:[1,3,5,7,9]
字典推导式:{key: value for循环 if判断}
示例:
#以0:xxx的格式打印
list = ["小明", "小红", "小强"]
dic = {i: list[i] for i in range(len(list)) if i % 2 == 0}
结果:{0:"小明", 2:"小强"}
集合推导式:(key for循环 if判断)
示例:
list = ["阿巴1", "阿巴2", "阿巴3"]
s = {i for i in list}
结果:{'阿巴1', '阿巴2', '阿巴3'}
元组推导式:
示例:
list = ("小红", "小明", "小强")
t = (i for i in list)
结果:Python中没有元组推导式,()返回的是生成器表达式
复习生成器:
1.通过生成器函数:yield 2.通过生成器表达式来实现生成器 (推导式) 1.节省内存 2.惰性机制 3.不能反复,只能向下执行
想要拿空生成器表达式里面的值。可以使用 list, tuple, set
list = (1,2,3,4)
list(list)
tuple(list)
set(list)
"""
yield from 把一个可迭代对象中的每一项分别返回
"""
def func():
lst1 = ["y1", "s1", "d1"]
lst2 = ["y2", "s2", "d2"]
# for i in lst1:
# yield i
# for i in lst2:
# yield i
yield from lst1
yield from lst2
lambda表达式:
"""
匿名函数又被称为lambda表达式。是为了解决一些简单的需求而设计的一句话函数
语法: fn = lambda n: n ** 2
注意: 返回多个值必须用元组
"""
#计算a+b,a-b的结果 fn = lambda a, b: (a + b, a - b) #返回多个值必须用到元组 print(fn(10, 20))
内置函数(作用域相关、迭代器/生成器相关、其他):
""" 作用域相关(2): globals() 查看全局作用域所有内容 locals() 查看当前作用域中的内容 """ """ 迭代器、生成器(3): range() 计数 next() 获取迭代器的下一个值 iter() 获取迭代器 """ """ 其他(12): dir() 查看数据类型都有哪些功能 callable() 判断XXX是否可以被调用 help() 帮助相关 __import__() 动态导入模块 open() 文件操作 hash() 查看hash值 id() 查看内存地址 input() 输入 print() 输出 eval() 执行字符串类型的代码,并返回最终结果 exec() 执行字符串类型的代码 complie() 将一个字符串编译为字节代码。 complie(字符串代码, 文件 , 执行的模式) 模式: 1.exec 执行代码 2.eval 执行代码需要返回的时候用 3.single 有input的时候用 """



