我是Python的新手,目前正在学习lambda表达.我正在解决一个辅导课程
定义一个函数
max_of_three(),它将三个数字作为参数并返回其中最大的一个.
我已经阅读了这篇旧文章并尝试过没有成功:
>>> max_of_three = lambda x, y, z : x if x > y else (y if y>z else z)
>>> max_of_three(91,2,322)
91
Run Code Online (Sandbox Code Playgroud)
为什么不回Z?这是X.
目前使用的是if x > y哪只比较x和y,但你需要比较x与z在同一工序为好.
max_of_three = lambda x, y, z: x if x > y and x > z else (y if y > z else z)
print max_of_three(91, 2, 322)
>>> 322
Run Code Online (Sandbox Code Playgroud)
或者,让它更简单:
max_of_three=lambda x,y,z:max((x,y,z))
max_of_three(1,2,3)
3
Run Code Online (Sandbox Code Playgroud)
我知道这是作弊,但使用语言原语通常更容易:-)