map reduce filter python,简述内置函数filter、map、reduce的作用-

  map reduce filter python,简述内置函数filter、map、reduce的作用?

  介绍下计算机编程语言中映射,缩小,和过滤器内置函数的方法:

  一:地图

  地图(.)

  映射(函数,序列[,序列,]) -列表

  说明:

  对顺序中的项目依次执行功能(项目),执行结果输出为列表。

  例子:

  map(str,range(5)) #对范围(5)各项进行潜艇用热中子反应堆(海底热反应堆的缩写)操作

  [0, 1, 2, 3, 4] #返回列表

  定义添加(n):返回不知道

  .

  map(add,range(5)) #对范围(5)各项进行增加操作

  [0, 2, 4, 6, 8]

  map(x:x x,range(5))#函数,各项本身

  [0, 2, 4, 6, 8]

  map(x:x ^ 1,range(10))#函数,各项一

  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  地图(添加,“周jy”)

  [zz , hh , oo , uu , jj , yy]

  #想要输入多个序列,需要支持多个参数的函数,注意的是各序列的长度必须一样,否则报错:

  def add(x,y):返回x y

  .

  地图(添加, zhoujy , Python )

  [zP , hy , ot , uh , jo , yn]

  def add(x,y,z):return x y z

  .

  地图(添加, zhoujy , Python , test) #test 的长度比其他2个小

  回溯(最近一次呼叫):

  模块中文件性病的第一行

  TypeError: add()正好接受2个参数(给定了3个)

  地图(添加, zhoujy , Python , testop )

  [zPt , hye , ots , uht , joo , ynp]

  二:减少

  减少(.)

  减少(函数,序列[,初始值]) -值

  说明:

  对顺序中的项目顺序迭代调用功能,函数必须要有2个参数。要是有第3个参数,则表示初始值,可以继续调用初始值,返回一个值。

  例子:

  def add(x,y):返回x y

  .

  reduce(add,range(10)) #1 2 3.9

  45

  reduce(add,range(11)) #1 2 3.10

  55

  reduce(x,y:x*y,range(1,3,5)#函数,5是初始值, 1*2*5

  10

  reduce(x,y:x*y,range(1,6)) #阶乘,1*2*3*4*5

  120

  reduce(lambda x,y:x*y,range(1,6),3) #初始值3,结果再*3

  360

  reduce(lambda x,y:x y,[1,2,3,4,5,6]) #1 2 3 4 5 6

  21

  三:过滤器

  过滤器(.)

  过滤器(函数或无,序列)-列表、元组或字符串

  说明:

  对顺序中的项目依次执行功能(项目),将执行结果为真(!=0)的项目组成一个列表/字符串/元组(取决于顺序的类型)返回,假的则退出(0),进行过滤。

  例子:

  定义分区(n):返回n%2

  .

  过滤器(分度,范围(5)) #返回差异输出的不等于0的真值

  [1, 3]

  过滤器(分度,范围(10))

  [1, 3, 5, 7, 9]

  过滤器(x:x % 2,范围(10))#函数返回奇数,返回列表

  [1, 3, 5, 7, 9]

  过滤器(x:不是x%2,范围(10))

  [0, 2, 4, 6, 8]

  定义fin(n):返回n!=z #过滤z 函数,出现z则返回错误的

  .

  过滤器(fin, zhoujy) #z 被过滤

  胡伊

  过滤器(x:x!=z , zhoujy) #labmda返回真实的值

  胡伊

  filter(lambda x : not x==z , zhoujy) #返回:字符串

  胡伊

  上面的这些例子中都用到了一个希腊字母的第11个表达式,下面举个例子,更多信息见这里。

  a=x:x ^ 3

  答(2)

  5

  a=x,y:x y

  答(2,3)

  5

  四,应用映射、减少、过滤

  1):实现5!4!3!2!1!

  #!/usr/bin/env python

  #-*-编码:utf-8 -*-

  def add_factorial(n):

  empty_list=[] #声明一个空列表,存各个阶乘的结果,方便这些结果相加

  对于映射中的I(x:x ^ 1,距离(n)): #用传进来的变量(名词)来生成一个列表,用地图让列表都1,例如:范围(5)=[1,2,3,4,5]

  a=reduce(x,y:x*y,map(x:x 1,range(i))) #生成阶乘,用地图去掉列表中的0

  empty_list.append(a) #把阶乘结果附加到空的列表中

  返回空列表

  if __name__==__main__ :

  导入系统

  #2选一

  #(一)

  尝试:

  n=输入(输入一个数字(int):)

  结果=add _阶乘(n) #传入变量

  print reduce(x,y:x y,结果)#阶乘结果相加

  除外(名称错误,类型错误):

  打印"那不是一个数字!"

  #(二)

  # result=add _ factorial(int(sys .argv[1])#传入变量

  # print reduce(lambda x,y:x y,result) #阶乘结果相加

  结果:

  周jy @周jy:~/桌面/Python/4$ python factorial.py

  输入一个数字(整数):1

  一

  周jy @周jy:~/桌面/Python/4$ python factorial.py

  输入一个数字(整数):2

  3

  周jy @周jy:~/桌面/Python/4$ python factorial.py

  输入一个数字(整数):3

  9

  Zhou jy @ Zhou jy:~/desktop/Python/4 $ Python factorial . py

  输入一个数字(整数):4

  33

  Zhou jy @ Zhou jy:~/desktop/Python/4 $ Python factorial . py

  输入一个数字(整数):5

  153

  Zhou jy @ Zhou jy:~/desktop/Python/4 $

  2):选择100~200以内的质数。

  想法:

  质数是指只有1和它的两个因子如2、3、5、7是质数,即能被1和它本身整除,1不是质数。

  比如一个数N是素数,就要看[2,n]之间的数X是否可整除(不包括自身),也就是N%X是否为0,如果不是,就是素数。

  所以我们要实现的算法是:取一个数N,将数X除以[2,n]得到素数,即:N/2,N/3,…,N/N-2,n/n-N/N-1===N/range(2 (2,N)

  #!/usr/bin/env python

  #-*-编码:utf-8 -*-

  def is_prime(开始,停止):

  Stop=stop 1 #包含列表右侧的值

  prime=filter(lambda x:not[x % I for I in range(2,x) if x% I==0],range (start,stop)) #取出素数,x是从range(start,stop)中取出的数

  打印主要内容

  if __name__==__main__ :

  尝试:

  start=input(输入起始数字:)

  除了:

  Start=2 #默认的起始值是2

  尝试:

  停止=输入(输入停止编号:)

  除了:

  Stop=0 #停止次数,默认为0,即不返回值。

  is_prime(开始,停止)

  结果:

  Zhou jy @ Zhou jy:~/desktop/Python/4 $ Python prime . py

  输入起始号码:

  输入停靠站编号:10

  [2, 3, 5, 7]

  Zhou jy @ Zhou jy:~/desktop/Python/4 $ Python prime . py

  输入起始数字:10

  输入停靠站编号:20

  [11, 13, 17, 19]

  Zhou jy @ Zhou jy:~/desktop/Python/4 $ Python prime . py

  输入起始号码:

  输入站点编号:

  []

  以上说完了!

  ~~~~~~~~~~~~~~~

  在所有的事物中,希望是最美丽的

  ~~~~~~~~~~~~~~~

  转载请联系作者获得授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: