我有两个列表arr_list1和arr_list2,它们都是列表列表。它们的大小完全相同。我需要计算每个列表中两者之间有多少元素不同。例如,
arr_list1 = [[0,1,1],[0,1,0],[1,0,1]]
arr_list2 = [[0,1,0],[1,1,1],[1,0,1]]
我想得到结果=(1,2,0)
这样做的“简单”方法是否需要循环?
答案 0 :(得分:1)
import numpy as np
arr_list1 = [[0,1,1],[0,1,0],[1,0,1]]
arr_list2 = [[0,1,0],[1,1,1],[1,0,1]]
print np.sum(np.asarray(arr_list1) != np.asarray(arr_list2),axis=1)
答案 1 :(得分:0)
您可以使用zip来比较差异:
arr_list1 = [[0,1,-1],[0,1,0],[1,0,1]]
arr_list2 = [[0,1,0],[1,1,1],[1,0,1]]
def get_differences(arr_list1, arr_list2):
all_differences = []
for a, b in zip(arr_list1, arr_list2):
sum_differences = 0
for a_item, b_item in zip(a, b):
if a_item != b_item:
sum_differences += 1
all_differences.append(sum_differences)
return all_differences
print get_differences(arr_list1, arr_list2)
答案 2 :(得分:0)
只需迭代两个列表并使用sum()
方法计算不匹配数
a1 = [[0,1,1],[0,1,0],[1,0,1]]
a2 = [[0,1,0],[1,1,1],[1,0,1]]
print [sum([a1[i][j]!=a2[i][j] for j in range(len(a1[i]))]) for i in range(len(a1))]
输出:
[1, 2, 0]