将数组值与多维数组中的数组值匹配

时间:2017-11-11 01:25:53

标签: python arrays arraylist multidimensional-array

我有2个阵列:

  1. [1, 2, 3, 4, 5]
  2. [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  3. 有没有办法可以在第二个数组中找到包含使用Python的第一个数组值的子数组?

    对于上述内容,它将是2

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)