码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-05-16 22:45:37      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:内容   写入   不一致   pre   变量   参数   python   长度   强制转换   

一、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

标签:内容   写入   不一致   pre   变量   参数   python   长度   强制转换   

原文地址:https://www.cnblogs.com/bendouyao/p/9047993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!