"""
python 语法糖
"""
#与三元运算混用
val = [99 if i >5 else 66 for i in range(10)]
print(val)
#示例4
#与lambda函数结合
v2 = [lambda x:x*i for i in range(10)]
print(v2[0](2))
#注意输出结果为18
#示例5
def num():
return [lambda x:i*x for i in range(4)]
print([m(2) for m in num()]) #注意此时的i为3,m()调用函数,此时参数X为2
#输出结果为[6,6,6,6] 作用域的原因
#解释 lambda进行拆解
def func():
fun_list = []
for i in range(4):
def foo(x):
return x*i
fun_list.append(foo)
return fun_list
for m in func():
print(m(2))
"""
当我们执行 m(2) 时,运行到foo()内部函数,发现变量 i 并不是foo()中的变量,于是就到外部函数func中寻找变量 i ,但此时外部的 for 已经循环完毕,最后的 i =3
"""
v2 = [lambda x,i=i:x*i for i in range(10)] #将i 作为参数传入
print(v2[-1](2))
#示例6
#筛选
v3 = [i for i in range(10) if i >5] #循环i,先执行判断语句在添加至列表中
print(v3)
#应与示例三做区分