python学习笔记(十六)内置函数zip、map、filter的使用

1、zip,就是把两个或者多个list,合并到一起,如果想同时循环2个list的时候,就使用zip。示例如下:

l1 = ['a','b','c','e','f','g']
l2 = [1,2,3]
l3=['A','B','C']
L4=['','','niu']
#zip,就是把俩list,合并到一起,如果想同时循环2个list的时候,
#如果两个list长度不一样,循环次数以长度最小的list为准
for a,b,c,d in zip(l1,l2,l3,L4):
    print(a,b,c,d)

>>>>a 1 A 牛
    b 2 B 牛
    c 3 C niu

2.map的使用。它是帮你循环调用函数的 ,比如:挨个把list里的每个元素转换为字符串

def my(num):               
    return str(num)  
      
lis = [1,2,3,4,5,6,7,8,9]                                                                   
new_lis = []               
for i in lis:              
    new_lis.append(my(i))  

#如果不使用map就需要循环调用函数my

下面来看看使用map后,就不需要循环了,map可以直接帮你循环调用函数。

def my(num):                                                                                           
    return str(num)                                                                                    
lis = [1,2,3,4,5,6,7,8,9]                                                                              
res = list(map(my,lis)) #注意map里面只是传函数名,不用加括号,函数名加括号是指调用函数                                              
print(res)                                                                                             

3.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只保留,返回为真的数据            
res2 = map(even,lis)                                       
print('map..',list(res2))  #map是帮你循环调用函数,这个函数返回就保存什么。      
#结果是什么,它和map和的结果有什么区别   

>>>filter.. [2, 4, 6, 8]
   map.. [False, True, False, True, False, True, False, True, False]                                   

 

posted @ 2018-05-17 10:12  西瓜汁拌面  阅读(231)  评论(0编辑  收藏  举报