2017-12-02 87 views
1

我想复制下面的JavaScript代码在Python执行代码块:在地图在Python

let a = [0, 4, 5] 
b = a.map(x => { 
    if(x < 3) return 0 
    else return 1 
}) 

任何想法,我该怎么办呢? 我不知道如何在map函数中执行代码块。

回答

1

您可以做一个功能,或者使用lambda函数是这样的:

>>> a = [0, 4, 5] 
>>> b = map(lambda x: 0 if x < 3 else 1, a) 
>>> b 
[0, 1, 1] 

唯一一种在Python匿名函数lambda表达式,而且他们的限制只能是一个表达式,如果你希望你有一个适当的功能,给它一个名字:

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

b = map(map_f, a) 
1

就个人而言,我更喜欢列表理解到map功能。

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

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