【问题标题】:python lambda function with if statement [duplicate]带有if语句的python lambda函数[重复]
【发布时间】:2021-02-11 12:38:13
【问题描述】:

任何人都可以纠正它我有点喜欢它但它不起作用

f=lambda x:"Not Weird" if (x%2==0 and (1<x<6 or x>20)) else "weird"
print(f)

我知道我可以很容易地用 If else 语句做到这一点,但这只是为了学习目的,所以如果你可以在同一个方向即兴创作,那么请赐教。

【问题讨论】:

  • 一个 lambda 就像一个函数,你需要用f(...) 调用它才能产生任何有意义的东西
  • 试试print(f(10))
  • 我知道这只是为了学习,但只是提到它违反了 PEP8 的建议 - 始终使用 def 语句而不是直接将 lambda 表达式绑定到标识符的赋值语句
  • 您未能提出问题...您的代码有什么问题?

标签: python lambda


【解决方案1】:

Fire 使用 () 的 lambda

f=lambda x:"Not Weird" if (x%2==0 and (1<x<6 or x>20)) else "weird"
print(f(1))
weird

【讨论】:

  • 效果很好,但对于 f(18),我得到了“不奇怪”的打印效果
  • Fire?你是说call吗?
  • @tripleee 正是它令人惊讶的原因......问题在于它不是真的。我得到weirdf(18)
  • 是的,我只是夸大了它:p
  • @Tomerikoo 我在笔记本上也很奇怪,但在hackerrank 上却没有我得到一个失败的测试用例 f(18) 和 f(20) 预期的 o/p 很奇怪
猜你喜欢
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 2015-06-20
相关资源
最近更新 更多