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]