我有一个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]是错误的,但我将如何迭代?
答案 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]]