将2d数组与Python数组进行比较

时间:2018-04-26 04:23:09

标签: python arrays

我有一个2D数组:

2d_arr = [[a,b,c,d],[a,b],[c,d],[a,f]]

另一个阵列:

arr = [a,w,b,x]

我想将2D数组中的每个元素(2d_arr)与数组(arr)进行比较,并将输出作为一个新的2D数组得到如下:(如果2D数组元素与数组匹配则为1,否则为0)

[a,w,b,x]
[1,0,1,0]
[1,0,1,0]
[0,0,0,0]
[1,0,0,0]

我尝试了以下内容:

for i in range(len(2d_arr)):
   for j in range(len(2d_arr[i])):
      if 2d_arr[i][j] == arr[i]
         .....

我知道最后一行的arr [i]是错误的,但我将如何迭代?

1 个答案:

答案 0 :(得分:2)

您可以使用列表理解:

arr_2d = [['a','b','c','d'],['a','b'],['c','d'],['a','f']]
arr = ['a','w','b','x']

[[int(x in a) for x in arr] for a in arr_2d]

[[1, 0, 1, 0], [1, 0, 1, 0], [0, 0, 0, 0], [1, 0, 0, 0]]