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()