#匿名函数 对简单函数的定义
# 语法: 函数名 =lambda 形参:返回值
# lambda 是定义匿名函数的关键字,相当于函数的def
# 形参的数量按需加,加多少都可以,只要用逗号隔开就可以
# def func(a,b):
# return a+b
# print(func(1,2))
#匿名函数
# func=lambda a,b:a+b
# print(func(1,2))
#
# # 在字符串中,返回索引中为0和2的元素
str1='abcdefg'
# print(str1[0])
# print(str1[2])
# # 法一
a=[]
a.append(str1[0])
a.append(str1[2])
# print(a)
# # 法二
li=list(str1[0:3])
li.remove('b')
print(li)
# # 法三
func =lambda x:[x[0],x[2]]
print(func('abcdefg'))
# # 三目运算
a=3
b=4
print(a) if a>b else print(b)
# 用匿名函数求if 和else
func=lambda a,b:a if a>b else b
print(func(3,9))
# 用匿名函数求平方
func=lambda a:a**2
print(func(2))
# 内置函数
# abs()返回绝对值
print(abs(-3))
# 求和sum
print(sum([1,2,3]))
# min 求最小值 max求最大值
print(min([1,2,3]))
print(max([1,2,3]))
# zip拉链函数 内部以元组形式返回
# 对应的打包,没有匹配会舍弃掉
a=[1,2,3]
b=[4,5,6,9]
print(tuple(zip(a,b)))
# map()函数
#map(function,iterable)映射函数
# 作用:可对跌代对象中每个元素进行映射,分别执行function
#计算列表中每个元素的平方,返回新列表
li=[1,2,3,4,5]
def funa(x):
return x*x
mp=map(funa,li)
print(list(mp))
# # 使用匿名函数
print(list(map(lambda x:x*x,li)))
#
# # reduce() 可迭代对象通过计算使元素不断减少,最终得到一个计算值
# # reduce(函数名,可迭代对象)
from functools import reduce #导入模块
list1=[1,2,3,4]
def func(x,y):
return x+y
res =reduce(func,list1)
print(res)
print(reduce(lambda a,b:a+b,list1))
# enumerate枚举 用于将一个可遍历的数据对象组合作为一个索引序列,同时列出数据和数据下标,一般用在for循环中
li=['a','b','c']
for i,j in enumerate(li):
print(i,j)
print(list(enumerate(li)))
print(dict(enumerate(li)))
# 拆包
def func():
a=10
b=20
c=30
return a,b,c
a1,b1,c1=func() #拆解
print(a1)
print(b1)
print(c1)
print(func())
# 元组拆包列表
tu=(1,2,3,4)
a,*b,c=tu
print(a)
print(b)
print(c)
# 列表拆包
list1=[1,2,3,4]
a,*b,c=list1
print(b)
# 字典拆包
dict1={'name':'lwl',"sex":'男'}
a,b=dict1
print(a)
print(b)
# 注意:对字典,拆包后获取的是字典的key,不会获取键值