【问题标题】:How do I find if an int is in array of arrays?如何查找 int 是否在数组数组中?
【发布时间】:2013-01-29 04:37:57
【问题描述】:

我有一个数组,每个索引都是另一个数组。如果我有一个 int,我如何编写代码来检查 int 是否存在于 python 中数组中每个数组元素的前 2 个索引中。

例如: 3 英寸

array = [[1,2,3], [4,5,6]] 

会产生 False。

3 英寸

array = [[1,3,7], [4,5,6]] 

会产生 True。

【问题讨论】:

    标签: python arrays boolean


    【解决方案1】:

    您可以使用numpy.array

    import numpy as np
    
    a1 = np.array([[1,2,3], [4,5,6]]) 
    a2 = np.array([[1,3,7], [4,5,6]])
    

    你可以这样做:

    >>> a1[:, :2]
    array([[1, 2],
           [4, 5]])
    >>> 3 in a1[:, :2]
    False
    >>> 3 in a2[:, :2]
    True
    

    【讨论】:

      【解决方案2】:

      您可以切片您的数组以获取其中的一部分,然后像这样使用in 运算符和any() 函数:

      >>> array = [[1,2,3], [4,5,6]]
      >>> [3 in elem[:2] for elem in array]
      [False, False]
      >>> any(3 in elem[:2] for elem in array)
      False
      
      >>> array = [[1,3,7], [4,5,6]]
      >>> [3 in elem[:2] for elem in array]
      [True, False]
      >>> any(3 in elem[:2] for elem in array)
      True
      

      any() 函数返回 True 如果迭代中至少有一个元素是True

      【讨论】:

        【解决方案3】:

        第一个想到的方法是

        len([x for x in array if 3 in x[:2]]) > 0
        

        【讨论】:

          【解决方案4】:
          >>> a = [[1,2,3], [4,5,6]]
          >>> print any(3 in b[:2] for b in a)
          False
          
          >>> a = [[1,3,7], [4,5,6]] 
          >>> print any(3 in b[:2] for b in a)
          True
          

          【讨论】:

            猜你喜欢
            • 2015-09-14
            • 2016-05-28
            • 2021-04-03
            • 2014-03-01
            • 2022-01-15
            • 2020-11-13
            • 1970-01-01
            • 2022-01-20
            • 1970-01-01
            相关资源
            最近更新 更多