足夠簡單,但我找不到一個體面的例子;所以我問了這裏!Python地圖()與案例
基本上我是什麼就是resultList =地圖(如> 0:這樣做,否則:爲此,listOfNumbers)
我該怎麼辦呢?
足夠簡單,但我找不到一個體面的例子;所以我問了這裏!Python地圖()與案例
基本上我是什麼就是resultList =地圖(如> 0:這樣做,否則:爲此,listOfNumbers)
我該怎麼辦呢?
使用lambda
(docs)函數。我使用了佔位符函數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)
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)
這對我的口味更具可讀性和可重用性。
列表理解或生成器表達式現在是可取的 – hop 2010-12-04 17:04:27
@hop你是對的,編輯它,謝謝。 – marcog 2010-12-04 17:35:34