问题描述
我有两个数组
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
我得到了奇怪的结果,我是编程新手,可以得到帮助。
抱歉复制粘贴错误
1楼
您的elif
条件与if
条件相同,这可能就是为什么它不适合您的原因。
实际上,您甚至不需要那里的条件。
它应该只是else
因为您想捕获所有与if
不匹配的内容。
也就是说,这种方式更好:
from itertools import product
counter = sum(1 if x==y else -1 for x, y in product(a, b))
2楼
您可以使用集:
a = ['ab','bc','cd']
b = ['bc','ab','cd']
print(len(set(a).intersection(set(b))))
3
3楼
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
4楼
只是一个简短而快速的选择:
sum(2*b.count(x) - len(b) for x in a)