搜索
首页后端开发Python教程关于Lambda表达式的实例教程
关于Lambda表达式的实例教程Jun 20, 2017 pm 03:01 PM
lambda练习表达式

Lambda表达式的五练习

语法:

Lambda函数,是一个匿名函数,创建语法:

 lambda parameters:express

parameters:可选,如果提供,通常是逗号分隔的变量表达式形式,即位置参数。

expression:不能包含分支或循环(但允许条件表达式),也不能包含return(或yield)函数。如果为元组,则应用圆括号将其包含起来。

调用lambda函数,返回的结果是对表达式计算产生的结果

  • 1.题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

print( str(score) + ' belongs to ' +

        (lambda x:(x>=90 and 'A' or x>=60 and 'B' or 'C'))(score))

 

2.题目:lambda的递归调用。将一个整数n,拆分打印出来。如234,应2,3,4分三行打印出来。

 

n = int(input ())
f=m,f:( (m / 10) !=0 f( int(m/10),f) ( m!=0  print(%(m%10) )))
f(n,f)

 

3.题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,

重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

 

import os
import sys
from functools import reduce
from math import sqrt

n = int(input ("Please input a int:\n"))
ans =[]
nn=n
f=lambda m,i,c,f:(m%i ==0 and f(m//i,i,c+1,f) or (m,c))
def func(x,y):
    ret,count=f(x,y,0,f)
    if count >0:
       ans.append(count * [y] )
    return ret
reduce(func,[nn]+list(range(2,nn)))
print(ans)

 

4.题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由输入控制。


n= int(input("n=:\n"))
aa =a= int(input('a=:\n'))

f=lambda n,a,ans,la,f: n==0 and ans or f(n-1,a,ans+[la*10+a],la*10+a,f )

print(reduce(lambda x,y:x+y,f(n,aa,[],0,f)))

 

  • 5.题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.

编程:找出1000以内的所有完数。

                   
factors = lambda x:filter( lambda i: x%i==0 and i,range(1,x))
f = lambda x: sum(factors(x)) == x
print( [(i,list(factors(i))) for i in list(filter( f, range(2,1001)))])

以上是关于Lambda表达式的实例教程的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
lambda 表达式在 C++ 中如何处理异常?lambda 表达式在 C++ 中如何处理异常?Apr 17, 2024 pm 12:42 PM

在C++中,使用Lambda表达式处理异常有两种方法:使用try-catch块捕获异常,并在catch块中处理或重新抛出异常。使用std::function类型的包装函数,其try_emplace方法可以捕获Lambda表达式中的异常。

C++ lambda 表达式中闭包的含义是什么?C++ lambda 表达式中闭包的含义是什么?Apr 17, 2024 pm 06:15 PM

在C++中,闭包是能够访问外部变量的lambda表达式。要创建闭包,请捕获lambda表达式中的外部变量。闭包提供可复用性、信息隐藏和延迟求值等优势。它们在事件处理程序等实际情况中很有用,其中即使外部变量被销毁,闭包仍然可以访问它们。

用 C++ lambda 表达式实现多线程编程的优势是什么?用 C++ lambda 表达式实现多线程编程的优势是什么?Apr 17, 2024 pm 05:24 PM

lambda表达式在C++多线程编程中的优势包括:简洁性、灵活性、易于传参和并行性。实战案例:使用lambda表达式创建多线程​​,在不同线程中打印线程ID,展示了该方法的简洁和易用性。

C++ lambda 表达式如何捕获外部变量?C++ lambda 表达式如何捕获外部变量?Apr 17, 2024 pm 04:39 PM

在C++中捕获外部变量的lambda表达式有三种方法:按值捕获:创建一个变量副本。按引用捕获:获得变量引用。同时按值和引用捕获:允许捕获多个变量,按值或按引用。

如何使用 C++ lambda 表达式执行延迟求值?如何使用 C++ lambda 表达式执行延迟求值?Apr 17, 2024 pm 12:36 PM

如何使用C++lambda表达式执行延迟求值?使用lambda表达式创建延迟求值的函数对象。延迟计算推迟到需要时才执行。仅当需要时才计算结果,提高性能。

C++ lambda 表达式的性能优化有哪些技巧?C++ lambda 表达式的性能优化有哪些技巧?Apr 17, 2024 pm 05:45 PM

优化C++Lambda表达式的性能技巧包括:避免创建不必要的lambda对象通过std::bind显式捕获最小的对象使用std::move移动捕获的变量以避免复制优化lambda体,避免不必要的内存分配、重复计算和全局变量访问

C++ lambda 表达式如何与标准算法库配合使用?C++ lambda 表达式如何与标准算法库配合使用?Apr 17, 2024 pm 05:51 PM

C++Lambda表达式与标准算法库紧密协作,允许创建匿名函数,简化对数据的处理。具体用途包括:排序向量:使用lambda表达式对元素进行排序。查找元素:使用lambda表达式在容器中查找特定元素。

C++ 函数返回 Lambda 表达式时有什么限制?C++ 函数返回 Lambda 表达式时有什么限制?Apr 20, 2024 pm 12:42 PM

回答:C++函数可以返回Lambda表达式,但存在以下限制:限制:Lambda表达式应捕获存储类型(CapturesbyValue)Lambda表达式不能返回局部变量Lambda表达式不能返回Lambda表达式

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器