zoukankan      html  css  js  c++  java
  • python的累积器、映射器、过滤器

     1 过滤器
     2 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
     3 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
     4 语法
     5 以下是 filter() 方法的语法:
     6 filter(function, iterable)
     7 参数
     8 function -- 判断函数。
     9 iterable -- 可迭代对象。
    10 返回值   返回一个迭代器对象
    11 def is_odd(n):
    12     return n%2==1
    13 tmplist=filter(is_odd,list(range(1,11)))
    14 tmplist=list(tmplist)
    15 print(tmplist)  #[1, 3, 5, 7, 9]
    16 
    17 过滤出1-100中平方根是整数的数
    18 import math
    19 def _is_sqr(x):
    20     return math.sqrt(x)%1==0
    21 tmplist=filter(_is_sqr,range(1,101))
    22 newlist=list(tmplist)
    23 print(newlist)  #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    24 
    25 
    26 映射器
    27 描述
    28 map() 会根据提供的函数对指定序列做映射。
    29 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
    30 语法
    31 map() 函数语法:
    32 map(function, iterable, ...)
    33 参数
    34 function -- 函数
    35 iterable -- 一个或多个序列
    36 返回值
    37 Python 2.x 返回列表。
    38 Python 3.x 返回迭代器。
    39 
    40 def square(x):
    41     return x**2
    42 print(list(map(square,list(range(1,6))))) #[1, 4, 9, 16, 25]
    43 
    44 print(list(map(lambda x:x**2,[1,2,3,4,5]))) #[1, 4, 9, 16, 25]
    45 
    46 提供了两个列表,对相同位置的列表数据进行添加
    47 print(list(map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10]))) #[3, 7, 11, 15, 19]
    48 
    49 
    50 
    51 累积器
    52 描述
    53 reduce() 函数会对参数序列中元素进行累积。
    54 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 12 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
    55 语法
    56 reduce() 函数语法:
    57 reduce(function, iterable[, initializer])
    58 参数
    59 function -- 函数,有两个参数
    60 iterable -- 可迭代对象
    61 initializer -- 可选,初始参数
    62 返回值
    63 返回函数计算结果。
    64 from functools import reduce
    65 def add(x,y):
    66     return x+y
    67 print(reduce(add,[1,2,3,4,5]))  #15
    68 
    69 print(reduce(lambda x,y:x+y,[1,2,3,4,5])) #15
    70 转自菜鸟教程 www.runoob.com
  • 相关阅读:
    python 计时累积超过24小时时继续往上累加
    linux 下获取文件最后几行
    unbuntu 安装python包提示E: Unable to locate package python-timeout
    python 计时器
    jquery中html()、text()、val()的区别
    DESC和 ACS
    jQuery自动截取文字长度,超过部分
    Spring MVC 注解
    注解笔记
    Spring Data JPA初使用 *****重要********
  • 原文地址:https://www.cnblogs.com/zpdbkshangshanluoshuo/p/10486399.html
Copyright © 2011-2022 走看看