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