python - 带有嵌套 if else 的 Lambda 不起作用

标签 python lambda

我是 Python 新手,目前正在学习 lambda 表达式。我正在解决一个教程程序

Define a function max_of_three() that takes three numbers as arguments and returns the largest of them.

我已经完成了这个old post并尝试没有成功:

>>> 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

为什么它不返回 Z?是 X。

最佳答案

目前你正在使用if x > y,它只比较xy,但你需要比较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

关于python - 带有嵌套 if else 的 Lambda 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294041/

相关文章:

Python正则表达式以开头的单词拆分

python - 使用 .format 格式化字符串时检索预期的键名

python - Jinja2 模板继承

python - 当使用带有 reportlab drawImage 的 PIL 图像对象时

c++ - Qt 信号 lambda 导致 shared_ptr 泄漏?

matlab - Matlab 中的多行匿名函数?

java - lambda 中的无限 while 循环内的 Thread.sleep 不需要 'catch (InterruptedException)' - 为什么不呢?

python - 更改变量的 netcdf 文件的值

Java 8 在一次迭代中求和两个对象属性

python - 在 Django 的过滤器查询中使用 lambda