2

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

例如:3 英寸

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

会产生 False。

3 英寸

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

会产生真。

4

4 回答 4

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

any()True如果可迭代对象中的至少一个元素是 ,则函数返回True

于 2013-02-13T15:24:01.687 回答
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
于 2013-02-13T15:23:44.673 回答
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
于 2013-02-13T15:49:33.377 回答
0

想到的第一个方法是

len([x for x in array if 3 in x[:2]]) > 0
于 2013-02-13T15:27:03.133 回答