3 回答

TA貢獻1775條經(jīng)驗 獲得超11個贊
numpyArray0 in mainList
調(diào)用list.__contains__
。列表的__contains__
方法調(diào)用列表的PyObject_RichCompareBool
每個元素來檢查元素是否相等。碰巧的是,首先PyObject_RichCompareBool
檢查身份相等性,然后進行全面比較。
numpyArray0 is mainList[0]
返回True
,因此永遠不會進行完全比較。如果完成了完全比較,numpy
則會引發(fā),ValueError
因為numpy
數(shù)組不能被解釋為布爾值。
numpyArray1 in mainList
也顯示了這一點(因為numpyArray1
vs 的身份比較失敗了mainList[0]
。

TA貢獻2021條經(jīng)驗 獲得超8個贊
這里的要點:
>>> numpyArray1 in mainList
....
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
這將工作:
>>> any([list(numpyArray1) == list(litem) for litem in mainList])
True
添加回答
舉報