Python的匿名函数、列表推导式及元素去重

目录

1、匿名函数

1.1 使用格式

1.2 应用场景

1.2.1 map()映射函数

1.2.2 filter()过滤函数

1.2.3 reduce()累计函数

2、列表推导式

2.1 定义

2.2 应用场景

3、元素去重

3.1 判断一个输入序列中有哪些重复元素

3.2 对序列重复元素进行去重


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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值