3
在Python撰寫地圖功能撰寫功能
你好
今天,我用兩個地圖調用上0
1
串變換面具布爾:
>>> a, b = '10'
>>> a, b = map(int, (a, b))
>>> a, b = map(bool, (a, b))
>>> a, b
(True, False)
怎麼辦那只有一張地圖?
在Python撰寫地圖功能撰寫功能
你好
今天,我用兩個地圖調用上0
1
串變換面具布爾:
>>> a, b = '10'
>>> a, b = map(int, (a, b))
>>> a, b = map(bool, (a, b))
>>> a, b
(True, False)
怎麼辦那只有一張地圖?
Python沒有函數組合操作符,所以沒有內置的方法來做到這一點。在這種特殊情況下,最簡單的方式向map
呼叫減少到一條線是一個lambda:
a, b = map(lambda x: bool(int(x)), (a, b))
你可以寫一個更一般的compose
function很輕鬆了,並使用它:
def compose(*fns):
return reduce(lambda f, g: lambda x: f(g(x)), fns, lambda x: x)
a, b = map(compose(bool, int), (a, b))
但說實話,後一種方法似乎在這裏過度殺傷。
你可以把工作中的一行代碼通過使用兩個列表內涵,而不是map()
這樣做:
>>> a, b = [bool(number) for number in [int(letter) for letter in '10']]
>>> a, b
(True, False)
你試過'地圖(拉姆達X:布爾(INT(X)),( a,b))? – vaultah