Python的地图()案件

很简单,但我不能找到一个体面的例子; 所以我在这里问!

基本上我是就是,resultList =地图(如> 0:做到这一点,否则:做到这一点,listOfNumbers)

我怎么做?

--------------解决方案-------------

使用lambda (文档)的功能。 我用占位符函数foo()bar() ,你将不得不替换为“做”/“做”位。

resultList = map(lambda x: foo(x) if x > 0 else bar(x), listOfNumbers)

另一种方法,它为@hop理所当然地说,就是在Python的首选方法,是使用列表理解。 这甚至不需要使用的lambda功能。

resultList = [foo(x) if x > 0 else bar(x) for x in listOfNumbers)

答案很简单:不要这一点。

真。 友好地对待那些家伙谁拥有后您阅读的代码。 写在几行,像这样:

def choose_value(x):
if x > 0:
return blah(x)
return minor(x)

results = map(choose_value, list_of_numbers)

这是对我的口味更可读和可重复使用。

resultList = [foo(x) if x > 0 else bar(x) for x in listOfNumbers]

分类:蟒蛇 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.537 (s). 10 q(s)