假設(shè)我有一個(gè)列表:foo_list = ["foo", None, "bar", 1, 0, None]我想將這個(gè)列表轉(zhuǎn)換成一個(gè)布爾列表,說(shuō)明哪些元素是None,比如results = [False, True, False, False, False, True]一個(gè)簡(jiǎn)單map的lambda會(huì)做:list(map(lambda a: a==None, foo_list))但我想知道我是否可以刪除 lambda,并使其更簡(jiǎn)單,大致如下:list(map((==None), foo_list))這顯然會(huì)引發(fā)錯(cuò)誤,但其他函數(shù)式語(yǔ)言通常允許將運(yùn)算符作為函數(shù)使用,而且從技術(shù)上講,這個(gè)函數(shù)甚至沒有柯里化(因?yàn)樗哂兴璧乃袇?shù))。編輯:我知道 list comprehensions in Python,這可以解決為[(a==None) for a in foo_list],但這不是我的問(wèn)題。
1 回答

揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
我會(huì)說(shuō)列表理解是 Pythonic 方式,但如果你真的想要,你可以做
import functools
import operator
foo_list = ["foo", None, "bar", 1, 0, None]
print(list(map(functools.partial(operator.is_, None), foo_list)))
添加回答
舉報(bào)
0/150
提交
取消