如何查找int是否在数组数组中?

时间:2013-02-13 15:22:06

标签: python arrays boolean

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

例如: 3 in

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

会产生错误。

3 in

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

会生成True。

4 个答案:

答案 0 :(得分:5)

您可以切片您的数组以获取其中的一部分,然后使用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
如果iterable中至少有一个元素是any(),则

True函数返回True

答案 1 :(得分:3)

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

答案 2 :(得分:0)

首先想到的是

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

答案 3 :(得分:0)

您可以使用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