Python的lambda,列表推导式,map,zip,filter—新手自学整理

  1. lambda定义匿名函数 func=lambda x:x**2
  2. 列表推导式顾名思义主要用来生成列表,后来又扩展到可以生成字典和集合 lst=[x for x in range(10)if x%2==0]用0~10之间的偶数生成一个列表
  3. map(函数,序列)把序列中的每个元素放入函数中计算,计算后生成的是一个map对象不是一个序列,需要使用list(map对象)转换才能生成列表。
    lst=list(map(lambda x:x**2,[1,2,3,4]))
  4. filter(函数,序列)把序列中的每个元素放入函数中计算,计算后生成的是一个filter对象不是一个序列,需要使用list(map对象)转换才能生成列表。
  • map和filter很相似,但是filter是过滤,而map是映射
print(list(filter(lambda x:x%2==0,range(10))))
print(list(map(lambda x:x%2==0,range(10))))
print(type(map))
print(type(filter))
'''
[0, 2, 4, 6, 8]
[True, False, True, False, True, False, True, False, True, False]
<class 'type'>
<class 'type'>
'''

  1. zip(*list)和列表推导式一样也是主要用来操作列表,可以将多个列表中的index标签相同的元素组合成一个元组,最终将这些元组组合成一个列表
'''
对一个列表中的数字进行计数
'''
arr=[3,5,2,7,3,8,1,2,4,8,9,3]
unique=set(arr) #使用集合去除列表中重复的数字
lst1=list(zip(unique,list(map(arr.count,unique))))
print(lst1)
# 输出:[(1, 1), (2, 2), (3, 3), (4, 1), (5, 1), (7, 1), (8, 2), (9, 1)]
# 只留下数字和次数出现相等的元素
lst2=list(filter(lambda x:x[1]==x[0],lst1))
print(lst2)
# 输出:[(1, 1), (2, 2), (3, 3)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值