【问题标题】:Check whether a condition holds within a list of lists检查条件是否在列表列表中成立
【发布时间】:2021-08-15 18:24:03
【问题描述】:

我有一个列表列表(使用 NumPy 转换为数组),如下所示:

array([[ 1,  1,  1],
       [ 4,  3,  1],
       [ 5,  2,  1],
       [ 8,  4,  1],
       [ 9,  4,  1],
       [12,  3,  1],
       [13,  2,  1],
       [14,  3,  2],
       [15,  1,  1]])

我想获得一个布尔变量,指示上述数组中是否有任何行其第一列和最后一列分别等于 r1 和 r2。请注意,r1 和 r2 是常数。最有效的方法是什么?谢谢。

【问题讨论】:

  • 什么是r1r2?那些是常数吗?行?
  • 谢谢。常数。
  • condition = any(row[0] == r1 and row[2] == r2 for row in array)

标签: python list find


【解决方案1】:

您可以将条件放入np.any。例如:

import numpy as np

a = np.array([[ 1,  1,  1],
       [ 4,  3,  1],
       [ 5,  2,  1],
       [ 8,  4,  1],
       [ 9,  4,  1],
       [12,  3,  1],
       [13,  2,  1],
       [14,  3,  2],
       [15,  1,  1]])

np.any((a[:,0] == 15) & (a[:,2] == 1))
# True

np.any((a[:,0] == 14) & (a[:,2] == 1))
# False

【讨论】:

    猜你喜欢
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2013-10-30
    • 2019-04-09
    相关资源
    最近更新 更多