栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python函数---lambda,map,filter,reduce,set,intersection,difference函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python函数---lambda,map,filter,reduce,set,intersection,difference函数

  1. lambda匿名函数
  2. map函数
    map函数的表达式
map(function_to_apply, list_of_inputs)

后者是输入,前者是对输入值的应用表达。有不同种的写法

  • 写法1
items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))

输入就是列表里边的数值,所以lambda后边的表达式就是直接计算

  • 写法2
def multiply(x):
        return (x*x)
def add(x):
        return (x+x)

funcs = [multiply, add]
for i in range(5):
    value = map(lambda x: x(i), funcs)
    print(list(value))

这里的输入是个函数的形式,所以lambda后边的表达式expression需要写成x(i),表示往函数里边传入参数i。’
3. filter函数
filter 过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表

number_list = range(-5, 5)
less_than_zero = filter(lambda x: x < 0, number_list)
print(list(less_than_zero))

输出
-5,-4,-3,-2,-1s

filter函数是一个内置函数,比for循环速度要快

4 . reduce函数
当需要对一个列表进行一些计算并返回结果时,Reduce 是个非常有用的函数,比for循环省时间

from functools import reduce
import time
AA = [1]*10000000
time1 = time.time()
product = reduce( (lambda x, y: x * y), AA)
time2 = time.time()
print(time2-time1)


AA = [1]*10000000
j = 1
time3 = time.time()
for i in range(len(AA)):
    j = j*i
    
time4 = time.time()
print(time4-time3)

输出
0.7460358142852783
0.8257877826690674

除了乘法,其他运算也可以


想检查列表中是否包含重复的元素的三种方法:set,交集(intersection),差集(difference)
5. set函数
set(集合)是一个非常有用的数据结构。它与列表(list)的行为类似,区别在于 set 不能包含重复的值。

some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
duplicates = set([x for x in some_list if some_list.count(x) > 1])
print(duplicates)
  1. 交集intersection
valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.intersection(valid))

输出
{'red'}
  1. 差集difference
    你可以用差集找出无效的数据,相当于用一个集合减去另一个集合的数据
valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.difference(valid))

输出
{'red'}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/304006.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号