2016-12-21 3 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

ラムダを取り除くためにリストの理解を使用するために、この素​​晴らしいトリック、おかげで、大ピソニック – maxymoo

関連する問題