用python中的map组合函数

时间:2016-07-19 16:26:57

标签: python

在python中编写map函数

你好

今天我使用两个map调用将0 1字符串上的掩码转换为boolean:

>>> a, b = '10'
>>> a, b = map(int, (a, b))
>>> a, b = map(bool, (a, b))
>>> a, b
(True, False)

如何只使用一张地图?

2 个答案:

答案 0 :(得分:4)

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))

但说实话,后一种方法在这里似乎有些过分。

答案 1 :(得分:1)

您可以使用两个列表推导而不是val consumer = new ConsumerService[String](QueueName.CONSUME, (this.process _).asInstanceOf[Consumer[String]]) 来完成一行代码中的工作:

map()