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