2016-12-21 98 views
0

我試圖映射list.__contains__,但我得到以下錯誤如何映射列表.__ contains__?

In [31]: map(list.__contains__(3), [[1,2],[1,3]]) 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-31-613ca9e4966b> in <module>() 
----> 1 map(list.__contains__(3), [[1,2],[1,3]]) 

TypeError: descriptor '__contains__' requires a 'list' object but received a 'int' 

我在做什麼錯在這裏?

回答

2

您需要翻轉參數順序,或者只是使用lambda這更容易。

map(lambda x: 3 in x, [[1,2],[1,3]]) 

相當於一個列表的理解,這是一個有點短:

[3 in x for x in [[1,2],[1,3]]] 
+0

得到它在短短的在我面前。該地圖需要知道它正在調用哪個列表實例的__contains__方法。 –

+0

感謝這個,使用列表理解擺脫lambda,v。pythonic – maxymoo