美文网首页Python专题
利用filter()和lambda表达式求100内3的倍数

利用filter()和lambda表达式求100内3的倍数

作者: 右哼哼丨左哼哼 | 来源:发表于2018-01-29 11:55 被阅读2次

filter()过滤器

描述

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

语法

以下是 filter() 方法的语法:

filter(function, iterable)

参数

function -- 判断函数。
iterable -- 可迭代对象。

返回值

返回列表。


过滤出1~100中平方根是整数的数:

import math
def is_sqr(x):
    return math.sqrt(x) % 1 == 0

newlist = filter(is_sqr, range(1, 101))
print(newlist)

输出结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

lambda表达式

Lambda是一个表达式,也可以说它是一个匿名函数。然而在使用它或是阅读Lambda代码的时候,却显得并不那么容易。因为它匿名,因为它删减了一些必要的说明信息(比如方法名)。
现在假设需要对两个数进行求和运算。对于正常的逻辑代码,不难写出如下代码:

def sum(x, y):
    return x + y

而在lambda中,我们可以这样来写:

p = list(lambda x, y: x + y)

利用filter()和lambda表达式求100内3的倍数

第一种写法(if判断)

p=list(filter(lambda x:True if x % 3 == 0 else False, range(100)))
print(p)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]

第二种写法(not判断)

p=list(filter(lambda x:not(x%3), range(100)))
print(p)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]

相关文章

  • 利用filter()和lambda表达式求100内3的倍数

    filter()过滤器 描述 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的...

  • python语法入门三

    函数 lambda表达式 过滤器filter 字典 set集合 函数 lambda表达式 过滤器filter + ...

  • Java8-Lambda&Stream

    Lambda 案例1 lambda替换匿名类 案例2 lambda对list进行迭代 案例3 lambda表达式内...

  • 匿名函数、函数作用域、闭包2018-11-23

    匿名函数 lambda 语法规则: lambda 参数 : 表达式 filter() 函数用于过滤序列,过滤掉...

  • C++ lambda表达式与函数对象

    C++ lambda表达式与函数对象 lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以...

  • [代码简化] 1 Lambda表达式

    1、lambda表达式 1.1 lambda 利用lambda表达式代替匿名参数类,将行为进行参数化传递到代码中,...

  • 64.有参lambda表达式

    1.lambda单独存在 2.通过变量保存lambda表达式 3.lambda表达式的返回值 lambda表达式的...

  • 2020-02-24

    高阶函数 lambda函数 lambda是一种表达式,创建内嵌的简单匿名函数 filter函数 返回一个列表,其中...

  • 13 函数的进阶[python基础]

    lambda函数 lambda是一种表达式,创建内嵌的简单匿名函数 filter函数的使用 返回一个列表,其中包含...

  • Java8学习笔记之重构

    一、为改善可读性和灵活性重构代码 利用Lambda表达式,可以写出更简洁灵活的代码。Lambda表达式可以让我们用...

网友评论

    本文标题:利用filter()和lambda表达式求100内3的倍数

    本文链接:https://www.haomeiwen.com/subject/zahxzxtx.html