比较两个阵列之间的范围

时间:2016-01-25 04:59:16

标签: python-3.x

我有两个不同的数组:

A = [1,6,8]
B = [2,5,6,9]

我想检查A范围内是否存在至少一个B元素

示例:

我们说我在列表A中有两个值X = 1 and Y = 8

我想检查列表B中是否存在X和Y范围内的元素。

  

我期望的答案是让python告诉我2,5,6是   来自B的元素,适合A [0]和A [2]

的范围

我试过了:

for n in range(x,y)

    if n in B 

但它没有用。

我做错了吗?

2 个答案:

答案 0 :(得分:1)

这就是你可以做到的。

list_1 = [1, 6, 8]
list_2 = [2,5,5,8]
for n in range (list_1 [0], list_1 [2]):
    if n in list_2:
        print n

答案 1 :(得分:0)

  

我想检查A范围内是否存在至少一个B元素

查找B中是否存在A中的任何元素:

exists = not set(A).isdisjoint(B)

O(len(A) + len(B))时间exists = any(b in A for b in B)不同于O(len(A) * len(B)) A算法,例如,如果B10**6每个都有一百万个元素,那么第一个方法( set.isdisjoint())需要大约一百万(10**12)次操作,而第二种方法(使用循环)需要大约一百万(B)次操作太慢。

查找range(A[0], A[2])中是否存在exists = any(A[0] <= b < A[2] for b in B) 中的任何元素:

Student table
"Name" character(10),
"Subject_studying" text[],
相关问题