**
python中的闭包
**
如果想计算:y = a * x + b 的值
利用一般函数计算要传递三个参数
并且,当要计算多组值时就变得非常繁琐
但是,利用闭包来计算就非常简便
利用闭包计算 y = a * x + b 代码如下
def line(a,b):
def line_inner(x):
return a*x+b
return line_inner
line1 = line(2,4)
line2 = line(1,5)
print("y=2x+4 当x=2时 值为:%d" % line1(2)) #计算2x+4 当x=2时的值
print("y=2x+4 当x=3时 值为:%d" % line1(3)) #计算2x+4 当x=3时的值
print("y=x+5 当x=2时 值为:%d" % line2(2)) #计算x+5 当x=2时的值
print("y=x+5 当x=3时 值为:%d" % line2(3)) #计算x+5 当x=3时的值
输出:
y=2x+4 当x=2时 值为:8
y=2x+4 当x=3时 值为:10
y=x+5 当x=2时 值为:7
y=x+5 当x=3时 值为:8
列表推导式
构建一个列表,要求元素大于4
print([i for i in range(11) if i > 4])
输出结果:
[5, 6, 7, 8, 9, 10]
找到嵌套列表中名字含有两个‘e’的所有名字(有难度)
names = [[‘Tom’, ‘Billy’, ‘Jefferson’, ‘Andrew’, ‘Wesley’, ‘Steven’, ‘Joe’],
[‘Alice’, ‘Jill’, ‘Ana’, ‘Wendy’, ‘Jennifer’, ‘Sherry’, ‘Eva’]]
方法一: 普通方法
list_1 = []
for i in names:
for j in i:
if j.count(‘e’) >= 2:
list_1.append(j)
print(l4)
方法二: 列表推导式方法
print([j for i in names for j in i if j.count(‘e’) >= 2 ])