不使用lambda编写Python

不使用lambda编写Python,python,python-3.x,Python,Python 3.x,没有Lambda我怎么写呢?一种方法是定义自己的函数 一种方法是定义自己的函数 lambda只是一种方便的未命名函数。如果要将函数分配给一个名称,那么它可能只是一个命名函数 def ch(r): return "s" if r is True else ("w" if r is False else " ") 需要注意的是,您可以在另一个函数中执行此操作,它将创建一个本地函数,就像lambda一样。lambda只是为简短的未命名函

没有Lambda我怎么写呢?

一种方法是定义自己的函数

一种方法是定义自己的函数


lambda只是一种方便的未命名函数。如果要将函数分配给一个名称,那么它可能只是一个命名函数

def ch(r):
  return "s" if r is True else ("w" if r is False else " ")

需要注意的是,您可以在另一个函数中执行此操作,它将创建一个本地函数,就像lambda一样。

lambda只是为简短的未命名函数提供了方便。如果要将函数分配给一个名称,那么它可能只是一个命名函数

def ch(r):
  return "s" if r is True else ("w" if r is False else " ")

需要注意的是,您可以在另一个函数中执行此操作,它将创建一个本地函数,就像lambda一样。

只需丢弃lambda并将其作为链式三元运算符表达式写入即可

def to_char(v):
  if v is True:
    return "s"
  elif v is False:
    return "w"
  else:
    return " "
此外,r似乎可以是不同的数据类型,这看起来很尴尬,也不是很健壮。如果您可以确保r始终是布尔值,那么可以将其简化为

ch = "s" if r is True else "w" if r is False else " "

但这取决于您的上游代码。

只需丢弃lambda并将其作为链式三元运算符表达式编写即可

def to_char(v):
  if v is True:
    return "s"
  elif v is False:
    return "w"
  else:
    return " "
此外,r似乎可以是不同的数据类型,这看起来很尴尬,也不是很健壮。如果您可以确保r始终是布尔值,那么可以将其简化为

ch = "s" if r is True else "w" if r is False else " "

但这取决于您的上游代码。

一般建议是不要使用is。。。但是==-为什么你要在这里输入一个值,或者是真的,或者是假的,或者是别的什么?一般的建议是不要使用is。。。但是==-为什么你要在这里输入一个值,要么是真的,要么是假的,或者其他什么东西?ch=sr[r]也可以工作,但这看起来有点不对劲了。如果r确实不是布尔值或整数[0,1],也不是防弹的。ch=sr[r]也同样适用,但这已经开始显得相当粗糙了。如果r确实不是布尔值或整数[0,1],也不是防弹的。