目录
1、匿名函数
1.1 使用格式
lambda关键词能够创建小型匿名函数,这种函数得名于省略了用def声明函数的基本步骤
lambda函数语法只包含一个语句,如下:
lambda [arg1 [,arg2,......,argn]]:expression
实例代码:
sum = lambda arg1, arg2 : arg1+arg2
#调用sum函数
print("Value of Total : {}".format(sum(10,20)))
print("Value of Total : {}".format(sum(30,20)))
输出结果:
30
50
注意:
- Lambda函数能接收任意数量的参数,只能有一个表达式,不用写return,返回值就是该表达式
- Lambda函数不能调用print
1.2 应用场景
作为函数的参数使用
1.2.1 map()映射函数
map(规则,集合)把集合按照指定规则转化
test = [1,2,3,4,5]
# 把集合中所有元素转换为平方数
a = map((lambda x:x**2),test)
print(list(a))
1.2.2 filter()过滤函数
filter(规则,集合)把集合按指定规则进行过滤
test = [1,2,3,4,5]
#过滤集合中所有偶数
b = filter((lambda x:x%2==1),test)
print(list(b))
1.2.3 reduce()累计函数
reduce(规则,集合)把集合按照指定规则累积
test = [1,2,3,4,5]
from functools import reduce
# 求集合中所有元素的和
c = reduce(lambda x,y:x+y,test)
print(c)
2、列表推导式
2.1 定义
列表推导式可以利用range区间,字典,集合等数据类型,快速生成应该满足指定需求的列表
语法格式:
[表达式 for 变量 in 可迭代对象]
2.2 应用场景
示例1:生成0-5的平方数列表
mylist1 = [x ** 2 for x in range(5)]
示例2:生成0-10之间的偶数列表
mylist2 = [x for x in range(10) if x%2==0]
示例3:生成一个元组列表
mylist3 = [(x,y) for x in range(5) for y in range(3)]
3、元素去重
3.1 判断一个输入序列中有哪些重复元素
demo = [1,2,1,3,4,5,5,6,7,8,3]
target = []
for i in demo:
#如果元素数量大于1且在新列表中不存在,则存放在新列表中
if demo.count(i) > 1 and (i not in target):
target.append(i)
# 遍历结束后,target中的元素就是重复元素
print(target)
3.2 对序列重复元素进行去重
1、set()函数去重
# 使用set()函数进行去重
demo = [1,2,1,3,4,5,5,6,7,8,3]
# 先使用set()去重,再利用list()函数把序列还原为list类型
res = list(set(demo))
print(res)
2、列表遍历去重
#列表遍历
demo = [1,2,1,3,4,5,5,6,7,8,3]
new_i = []
for i in demo:
if i not in new_i:
new_i.append(i)
print(new_i)