我有两个不同的数组:
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
但它没有用。
我做错了吗?
答案 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
算法,例如,如果B
,10**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[],