2017-12-02 91 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] 

它們允許您使用任何您想要的表達而無需創建函數。