在Python中的映射中执行代码块

在Python中的映射中执行代码块,python,Python,我想在Python中复制以下JavaScript代码: let a = [0, 4, 5] b = a.map(x => { if(x < 3) return 0 else return 1 }) a=[0,4,5] b=a.map(x=>{ 如果(xa=[0,4,5] >>>b=映射(λx:0,如果x>>b [0, 1, 1] Python中唯一的匿名函数是lambdas,它们仅限于一个表达式,如果您想要一个合适的函数,必须给它一个名称: def map_f(x):

我想在Python中复制以下JavaScript代码:

let a = [0, 4, 5]
b = a.map(x => {
  if(x < 3) return 0
  else return 1
})
a=[0,4,5]
b=a.map(x=>{
如果(x<3)返回0
否则返回1
})
你知道我该怎么做吗?
我不确定如何在
map
函数中执行代码块。

您可以创建一个函数,或者像这样使用lambda函数:

>>> a = [0, 4, 5]
>>> b = map(lambda x: 0 if x < 3 else 1, a)
>>> b
[0, 1, 1]
>>> a = [0, 4, 5]
>>> [int(x >= 3) for x in a]
[0, 1, 1]
>a=[0,4,5]
>>>b=映射(λx:0,如果x<3,则为1,a)
>>>b
[0, 1, 1]
Python中唯一的匿名函数是lambdas,它们仅限于一个表达式,如果您想要一个合适的函数,必须给它一个名称:

def map_f(x):
    if x < 3:
        return 0
    else:
        return 1

b = map(map_f, a)
def映射f(x):
如果x<3:
返回0
其他:
返回1
b=映射(映射f,a)

就我个人而言,我更喜欢列表理解而不是
映射功能

>>> a = [0, 4, 5]
>>> [int(x >= 3) for x in a]
[0, 1, 1]

它们允许您使用任何您想要的表达式,而无需创建函数。

ya python不遗余力地使正常的函数操作
filter
map
reduce
等变得笨拙
>>> a = [0, 4, 5]
>>> [int(x >= 3) for x in a]
[0, 1, 1]