Python:map,filter和zip

1.map内建函数

map(function, sequence, *sequence_1)
参数是一个函数,一个或者多个序列
将序列中的每一个元素取出来传入函数中,再将函数结果的返回值组成一个新的序列

实例:

def test(x):
    return x**2
>>>l=[2,3,4,5,6]
>>> map(test,l)
[4, 9, 16, 25, 36]
>>>

>>>
>>> new_li=map(lambda x:x+2,[1,2,3,4])
>>> new_li
[3, 4, 5, 6]   #
>>>

2.filter()内建函数

filter(function_or_none, sequence)
将序列中的每一个元素传入到函数中,如果函数返回为真,那么就将这个元素加入新的列如果为假就跳过这个元素

实例

>>> def test(x):
...     if(x>10):
...         return True
...     else:
...         return False
...
>>> l=[1,4,8,12,45,67]
>>> filter(test,l)
[12, 45, 67]
>>>


>>> filter(lambda x:x>10,[1,2,3,4,667,86])#过滤小于10的元素
[667, 86]   
>>>

3.zip()内建函数

zip(seq1, seq2, *more_seqs)
直接看效果

>>>
>>> k=[1,2,3,4]
>>> l=[2,3,4,5]
>>> zip(k,l)
[(2, 1), (3, 2), (4, 3), (5, 4)]
>>>

元素个数不一样
>>> k=[2,3,4,5]
>>> l=[1,2,3]
>>> zip(k,l)
[(2, 1), (3, 2), (4, 3)]
>>>

#元素类型不一样
>>> k=[2,3,4,5]
>>> l=['a','b','c']
>>> zip(k,l)
[(2, 'a'), (3, 'b'), (4, 'c')]
>>>


#多个序列
>>> k=[2,3,4,5]
>>> l=['a','b','c']
>>> j=['v1','v2','v3','v4']
>>> zip(k,l,j)
[(2, 'a', 'v1'), (3, 'b', 'v2'), (4, 'c', 'v3')]
>>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值