Python 为什么这一行会导致布尔错误?
这是我的代码行Python 为什么这一行会导致布尔错误?,python,numpy-ndarray,Python,Numpy Ndarray,这是我的代码行a是一个多维列表,b是一个nd数组。当我运行它时,它返回以下错误: len([True for i in a if any([any(j == b[:, 0]) for j in i])]) 尽管我在每个需要的地方都使用了any()。我的错在哪里 编辑:列表的值: a=[[0,0],[0,0]]]] b=np.array([[0,0],[0,0]],0]]) 问题产生于: any(j==b[:,0]) 使用: (j==b[:,0])。任何() 相反。外部any()也一样。请注
a
是一个多维列表,b
是一个nd数组。当我运行它时,它返回以下错误:
len([True for i in a if any([any(j == b[:, 0]) for j in i])])
尽管我在每个需要的地方都使用了any()
。我的错在哪里
编辑:列表的值:
a=[[0,0],[0,0]]]]
b=np.array([[0,0],[0,0]],0]])
问题产生于:
any(j==b[:,0])
使用:
(j==b[:,0])。任何()
相反。外部
any()
也一样。请注意,any()
可以接受一个iterable,它是np\u数组。any()
是numpy的一个函数。问题产生于:
any(j==b[:,0])
使用:
(j==b[:,0])。任何()
相反。外部
any()
也一样。请注意,any()
可以接受一个iterable,它是np\u数组。any()
是numpy的一个函数。您可以在allStates
和self.wins
中为您的问题添加值,以便我们可以测试它吗too@Yatin我在问题中添加了一些示例。您可以从这些列表中删除多少值,在仍然复制相同错误的情况下,您可以从失败的语句中删除多少?@mercator I可以将语句缩减为len([a if any中的I为True([any(j==b[:,0]),对于j in I中的j]))
a=[[[0,0],[0,0]]]]和b=np.array([[[[0,0],[0,0]],0]]))
您能在所有州
和自我赢
中为您的问题添加值,以便我们测试它吗too@Yatin我在问题中添加了一些示例。您可以从这些列表中删除多少值,在仍然复制相同错误的情况下,您可以从失败的语句中删除多少?@mercator I可以将语句减少到len([a if any中的I为True([any(j==b[:,0]),对于I中的j]))
a=[[[0,0],[0,0]]]]和b=np.array([[[[0,0],[0,0]],0]])
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()