列表推导式&&递归函数&&匿名函数
推导式
字典推导式
创建字典 key是1-5的数字,v是这个数字的平方
dict1 =
dict1 = {i: i**2 for i in range(1, 5)}
print(dict1)
将两个列表合并为一个字典
list1 = ['name', 'age', 'gender']
list2 = ['hekang', 18, '男']
dict2 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict2)
提取字典中的目标数据
counts = {'MBP': 256, 'HuaWei': 156, 'Dell': 530, 'acer': 12}
需求:提取上述电脑数量大于等于200的字典数据
counts1 = {k: v for k, v in counts.items() if v >= 200}
print(counts1)
列表推导式
基本格式为:
[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]
l1 = [k for k in range(10)]
print(l1)
多重for循环实现列表推导式
list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)
集合推导式
需求:创建一个集合,数据为下方列表的2次方
list1 = [1, 1, 2]
list1 = [1, 1, 2]
set1 = {i ** 2 for i in list1}
print(set1)
集合有去重的功能
递归是一种编程思想
递归的特点:
函数内部自己调用自己
必须有出口
应用:3以内数字累加和
需求:3以内数字累加和 3+2+1
6 = 3 + 2以内数字累加和
2以内数字累加和 = 2 + 1以内数字累加和
1以内数字累加和 = 1 (出口)
图片
def sum_number(num):# 2.出口
if num == 1:
return 1
# 1.当前数字 + 当前数字-1的累加和
return num + sum_number(num-1)
result = sum_number(3)
print(result)
如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化
lambda语法
lambda 参数列表 : 表达式
lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用
lambda表达式能接收任何数量的参数但只能返回一个表达式的值
需求:函数 返回值100
1. 函数
def fn1():
return 100
result = fn1()
print(result)
2. lambda 匿名函数
lambda 参数列表: 表达式
fn2 = lambda: 100
print(fn2) # lambda内存地址
100返回值 调用函数
print(fn2())
lambda加法计算
需求:计算任意两个数字的累加和
函数
def add(a, b):
return a + b
result = add(1, 2)
print(result)
lambda
fn = lambda a, b : a + b
print(fn(1, 2))
lambda参数格式
1. 无参数
fn1 = lambda : 100
print(fn1())
2. 一个参数
fn2 = lambda a : a
print(fn2(5))
3.默认参数
fn3 = lambda a, b, c=100: a + b + c
print(fn3(2,3))
4.可变参数:*args
fn4 = lambda *args: args
print(fn4(1, 2, 3, 4))
返回的是元组
5.可变参数: **kwargs
fn5 = lambda **kwargs: kwargs
print(fn5(name = 'baixu', age = '20'))
返回的是字典
带判断的lambda
01 带判断的lambda
lambda两个数字比大小,谁大返回谁
fn1 = lambda a, b: a if a > b else b
print(fn1(100,200))
列表数据按字典key的值排序
students = [
{'name': 'TOM', 'age': 20},
{'name': 'ROSE', 'age': 19},
{'name': 'Jack', 'age': 22}
]
sort(key=lambda...,reverser=bool数据类型)
1. name key对应的值进行升序排序
students.sort(key=lambda x: x['name'])
print(students)
2. name key对应的值进行降序排序
students.sort(key=lambda x: x['name'], reverse=True)
print(students)
3. age key对应的值进行升序排序
students.sort(key=lambda x: x['age'])
print(students)

浙公网安备 33010602011771号