基于与列表的精确匹配返回单个真/假值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于与列表的精确匹配返回单个真/假值相关的知识,希望对你有一定的参考价值。

在Python中工作,我有这样的数据:

myList = [[1,0],
          [0,1],
          [1,1],
          [0,0],
          [0,1]]

我想使用numpy检查每个子列表是否等于特定列表,如果满足条件则返回单个True或False。

但是,如果我天真地这样做,例如:

evaluation = np.array(myList)==[1,1]

我得到一个看起来像这样的结果:

[[True,False],
 [False,True],
 [True,True],
 [False,False],
 [False,True]]

当我真的想要输出看起来像这样:

[False,
 False,
 True,
 False,
 False]

有任何想法吗?我知道你可以通过列表理解来做到这一点并避免numpy,但似乎应该有一种矢量化的方式来完成上述操作而不需要显式循环。实际数据要大得多,采用更快的方法会有所帮助。

答案

你可以使用all

np.equal(myList,[1,1]).all(1).tolist()

或者@pault说:

(myList == [1, 1]).all(axis=1)

输出:

[False, False, True, False, False]

以上是关于基于与列表的精确匹配返回单个真/假值的主要内容,如果未能解决你的问题,请参考以下文章

具有精确键列表的模式匹配映射

js的真值与假值

短路运算符(逻辑与&& 和 逻辑或||)

求一个基于java的模糊匹配算法

在设计数据库时,存储多个真/假值的首选方式是啥?

如何在给定路径下查找具有与递归精确模式匹配的位置的目录名称列表[重复]