python基础:内置函数zip,map,filter

Posted study!!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础:内置函数zip,map,filter相关的知识,希望对你有一定的参考价值。

一、zip

zip,就是把俩list,合并到一起,如果想同时循环2个list的时候,可以用zip,会帮你轮流循环两个list
比如:
l1=[1,2,3,4,5]
l2=[a,b,c,d,e]
for a,b in zip(l1,l2):
  print(a,b)
#得到的结果就是
1 a
2 b
3 c
4 d
5 e

如果两个list的长度不一致,则以长度小的为依据

比如:
l1=[1,2,3,4]
l2=[a,b,c,d,e]
for a,b in zip(l1,l2):
  print(a,b)
#得到结果就是
1 a
2 b
3 c
4 d

二、map

循环调用函数

def my(num):
    return str(num)
lis = [1,2,3,4,5,6,7,8,9]
res = list(map(my,lis))#map参数第一个是函数名,第二个是要循环的内容,返回结果是个map object地址,所以要用list强制转换下
print(res)#最终会将lis中的内容循环调用my函数,res=[‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘]

 

def my(num1,num2):
    return (num1,num2)
lis = [1,2,3,4,5]
lis1=[a,b,c,d]
res = list(map(my,lis,lis1))#map参数第一个是函数名,剩下的是要循环的内容,函数有几个参数,就要写入几个变量,返回结果是个map object地址,所以要用list强制转换下
print(res)#最终会将lis和lis1中的内容循环调用my函数,res=[(1,‘a‘)(2,‘b‘)(3,‘c‘)(4,‘d‘)]

三、filter

filter和map表面上看是一样的,都是循环调用函数,区别在于:filter是带有过滤性的,它会将要循环的内容代入函数后,结果为真的对应的内容返回

def even(num):
    if num%2==0:
        return True
    return False
lis = [1,2,3,4,5,6,7,8,9]
res = filter(even,lis)
print(filter..,list(res))  #filter只保留,返回为真的数据。将lis循环滴入even函数后,能够返回True的lis中的数据,会被打印出来,所以最终结果就是2,4,6,8
#如果改程序用map的话,函数返回什么就会打印什么,最终结果是False,True,False,True.....

 











以上是关于python基础:内置函数zip,map,filter的主要内容,如果未能解决你的问题,请参考以下文章

python 内置函数zip,map,三元,lambda表达式

好好学python · 内置函数(range(),zip(),sorted(),map(),reduce(),filter())

Python常用内置函数整理(lambda,reduce,zip,filter,map)

Python 之内置函数:filter、map、reduce、zip、enumerate

python基础之内置函数与匿名函数

python--几个重要内置函数(zip,fliter,map,sorted)