我目前正在教自己python 3,有一件事让我烦恼:我的意思是我期待的一切,包括lambda。但是,我如何编写代码块?
例如,如何在python(2或3)中编写以下简单程序代码:
( (lambda () (display "hello ") (display "world") (newline)) )
=> hello world
现在是python:
=> >>> lambda :print("hello") print("world");
答案 0 :(得分:1)
认为你的意思是,
>>> f = lambda : print("hello","world")
>>> f
<function <lambda> at 0x7faeca581d08>
>>> f()
hello world
答案 1 :(得分:1)
这不是你编写Python的方式。 Lambdas只是非常简单的函数的语法糖,并且只能包含一个表达式。如果你想做任何其他事情,你必须写一个函数。
def hello_world():
print("hello")
print("world")
请注意,这不是一个lambda的事实没有任何区别;你仍然可以将hello_world
作为第一类对象传递。
答案 2 :(得分:0)
如果你真的想在lambda中对多个表达式进行排序,那么就可以对它进行排序&#34;伪造它&#34;通过从多个子表达式构建数据结构。 Python将在构建数据结构时评估数据结构中的项。元组是使用的更有效的数据结构之一:
>>> f = lambda: (print('Hello ', end=''), print('World'))
>>> x = f()
Hello World
请注意, f 会返回一个元组,其中包含两个 print 函数调用的返回值,每个函数调用都是无。
>>> x
(None, None)
这可以按照您期望的方式工作,因为Python保证从左到右依次评估元组中的表达式:如下所述: