我有2个阵列:
[1, 2, 3, 4, 5]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
有没有办法可以在第二个数组中找到包含使用Python的第一个数组值的子数组?
对于上述内容,它将是2
答案 0 :(得分:2)
你可以试试这个:
s = [1, 2, 3, 4, 5]
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
final_val = len([i for i in a if any(b in s for b in i)])
输出:
2
答案 1 :(得分:1)
是的,对于第一个数组中的每个元素,您必须检查它是否在第二个数组的子数组中 但是,这是非常低效的,所以你可以这样继续:
对于第二个中的每个子数组,检查它是否包含First的任何元素,如果是这种情况,请在计数中添加一个,然后检查下一个子数组。
first = [1, 2, 3, 4, 5]
second = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matches = 0
for sub in second:
for elt in sub:
if elt in first:
matches += 1
break
print(matches)