python 序列处理函数

本文深入探讨Python中的高阶函数应用,包括filter用于筛选列表元素、zip与map实现并行遍历及映射操作、reduce进行累积计算等。通过具体实例展示了如何利用这些函数简化代码,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

filter(函数,列表)过滤

对列表做过滤
将列表中,每个值对于函数返回值为True的时候,保留
比如:将>5 的值取出来。

>>> def f(x):
...     if x > 5:
...         return True
...
>>> f(6)
True
>>> f(1)
>>> l = range(10)
>>> filter(f,l)
[6, 7, 8, 9]

zip()并行遍历、 map()

当列表长度不一样的时候,zip会取最短的长度
但是map会用None填充

>>> name = ["a",'b','c']
>>> age = [1,2,3]
>>> tel = ['11','22','33']
>>> zip(name,age,tel)
[('a', 1, '11'), ('b', 2, '22'), ('c', 3, '33')]
>>> map(None,name,age,tel)
[('a', 1, '11'), ('b', 2, '22'), ('c', 3, '33')]
>>> test=[1,2]
>>> zip(name,test)
[('a', 1), ('b', 2)]
>>> map(None,name,test)
[('a', 1), ('b', 2), ('c', None)]
>>> a =[1,2,3]
>>> b = [4,5,6]
>>> def mf(x,y):
...     return x*y
...
>>> map(mf,a,b)
[4, 10, 18]

reduce()

>>> l = range(100)
>>> reduce(lambda x,y:x+y,l)
4950

不用for循环了,更加简练了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值