zoukankan      html  css  js  c++  java
  • python 函数map()、filter()、reduce()

    map()函数    将一个列表进行遍历,对每一个字符串进行处理:

    例如:

     1 num_list = ["","","哈哈","太平洋海工欢唱","六队船厂","六队码头","六队船坞"]
     2 def add_function(x):
     3     return x + 1
     4 def reduce(x):
     5     return x - 1
     6 def binary(x):
     7     return x ** 2
     8 def test(func, x):
     9     new_list = []
    10     for i in x:
    11         new_list.append(func(i))
    12     return new_list
    13 print(list(map(lambda x:str(x)+"叠加",num_list)))
    14 输出
    15 ['我叠加', '是叠加', '哈哈叠加', '太平洋海工欢唱叠加', '六队船厂叠加', '六队码头叠加', '六队船坞叠加']

    进行对可迭代的对象进行单个处理。

    filter()函数   ,对可遍历的对象进行过滤。适合进行字符串处理。

    例如:

     1 num_list = ["","","哈哈","太平洋海工欢唱","六队船厂","六队码头","六队船坞"]
     2 def filter_list(func,array):
     3     res = []
     4     for i in array:
     5         if func(i):
     6             res.append(i)
     7     return res
     8 print(list(filter_list(lambda x:x.startswith("六队"),num_list)))
     9 print(list(filter(lambda x:x.startswith("六队"),num_list)))
    10 输出
    11 ['六队船厂', '六队码头', '六队船坞']
    12 ['六队船厂', '六队码头', '六队船坞']

    该函数可以对字符串进行处理。返回一个列表的对象。

    reduce()  函数, 该函数对整数进行处理。加减乘除都可以。

    例如:

     1 from functools import reduce
     2 a = [1, 2, 3, 100]
     3 lambda x, y: x * y
     4 
     5 
     6 def num(array, func,init = None):
     7     if init == None:
     8         res = array.pop(0)
     9     else:
    10         res = init
    11     for i in array:
    12         res = func(res, i)
    13     return res
    14 print(reduce(lambda x,y:x*y,a,100))
    15 print(num(a, lambda x, y: x * y,100))
    16 输出
    17 60000
    18 60000

    该函数适合对,某个可迭代的对象进行数据的运算。

  • 相关阅读:
    点 多边形内外判断
    Winform获取js变量值
    软件和系统之间的微妙
    c# 读写json文件
    不规则图形重心
    c# winform 打开html界面(含引用外部文件js)
    c# GDI 画圆,可以调整大小等功能
    mysql 查找乱码数据
    类实例的拷贝
    Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
  • 原文地址:https://www.cnblogs.com/ch2020/p/12343370.html
Copyright © 2011-2022 走看看