我有两个数组
a = [ab,bc,cd]
b = [bc,ab,cd]
我想将a的每个元素与b的每个元素进行比较,然后如果匹配则增加counter += 1
,否则counter -1
并显示counter
counter=0
for i in a:
for j in b:
if a[i-1] == b[j-1]:
counter = counter + 1
elif a[i-1] != b[j-1]:
counter = counter - 1
print counter
我得到了奇怪的结果,我是编程新手,感谢他们的帮助。
很抱歉复制粘贴错误
答案 0 :(得分:2)
您的elif
条件与您的if
条件相同,这可能就是为什么它不适合您。事实上,你甚至不需要那里的条件;它应该只是一个else
,因为你想要捕捉与if
不匹配的所有内容。
那就是说,这种方式更好:
from itertools import product
counter = sum(1 if x==y else -1 for x, y in product(a, b))
答案 1 :(得分:0)
你可以使用套装:
a = ['ab','bc','cd']
b = ['bc','ab','cd']
print(len(set(a).intersection(set(b))))
3
答案 2 :(得分:0)
a = ['ab','bc','cd']
b = ['bc','ab','cd']
counter = 0
for i in a:
for j in b:
if i == j:
counter += 1
else:
counter -= 1
print counter
答案 3 :(得分:-1)
只是一个简短而快速的选择:
sum(2*b.count(x) - len(b) for x in a)