import random
#1:+=:是否地址发生改变(发生改变)
num =1print(id(num))
num += num
print(id(num))# 2:匿名函数:用于简化函数的代码# 格式:lambda [形参1] [形参2] : [单行表达式]/[函数调用]# 特点:只能写一行 无return关键字defsum_num(num1, num2):
result = num1 + num2
return result
value = sum_num(1,2)print(value)
new_func =lambda x, y: x + y
value = new_func(1,2)#3: 无参匿名函数
new_func1 =lambda:print("我是无参匿名函数")
new_func1()# 4: 把匿名函数当做参数传递给另一个函数:建立一个函数,让他传递什么方法内部变量就进行什么操作。defcalculate_value(func):
num1 =1
num2 =2
result = func(num1, num2)print(result)defadd_num(v1, v2):return v1 + v2
calculate_value(add_num)# 简化 :
calculate_value(lambda x, y: x+y)# 5:列表推导式:利用for循环快速创建列表#语法格式:返回值 for value in 容器类型的数据# 快速创建列表,里面有1到5的数据
new_list =[value for value inrange(1,6)]print(new_list,type(new_list))#创建1到5里面的偶数列表
new_list2 =[value for value inrange(1,6)if value %2==0]print(new_list2,type(new_list2))#将字符串变成列表并且加倍
my_str ="abcd"
new_list3 =[value *2for value in my_str]print(new_list3)#多循环使用
new_list4 =[(x, y)for x inrange(1,3)for y inrange(2,4)]print(new_list4)# 练习题1:
my_tuple =({"name":"张三","age":23},{"name":"李四","age":18})#把年龄大于20的字典取出放在列表里
new_list5 =[my_dict for my_dict in my_tuple if my_dict["age"]>=20]print(new_list5)# 练习题2:#利用列表推导式,5个产生1到10个随机数放在列表表里
new_list6 =[random.randint(1,10)for value inrange(5)]print(new_list6)#练习题3:#定义一个字典,把字典中的键,键值对,值,分别做一次存储到列表
my_dict ={"name":"任善文","age":23,"sex":"男"}
new_list7 =[value for value in my_dict.values()]print(new_list7)
new_list8 =[key for key in my_dict.keys()]print(new_list8)
new_list9 =[item for item in my_dict.items()]print(new_list9)# 输出结果:# ['任善文', 23, '男']# ['name', 'age', 'sex']# [('name', '任善文'), ('age', 23), ('sex', '男')]#练习题4:利用列表推导式,把姓张的数据过滤出来放在一个列表里
my_list =[{"name":"张三","age":23},{"name":"李四","age":24},{"name":"张三丰","age":25}]
value =[item for item in my_list if item["name"][0]=="张"]print(value)# 输出: [{'name': '张三', 'age': 23}, {'name': '张三丰', 'age': 25}]# 练习题5 :利用列表推导式,把姓名是张三丰,年龄等于25的人过滤出来
value =[item for item in my_list if item["name"]=="张三丰"and item["age"]==25]print(value)# 输出结果:[{'name': '张三丰', 'age': 25}]# 练习6:利用列表推导式,将元组转化成字典列表
my_list2 =[("李四",20),('王五',24)]
value =[{"name": name,"age": age}for name, age in my_list2]print(value)