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.....

猜你喜欢

转载自www.cnblogs.com/bendouyao/p/9047993.html
今日推荐