<分区>
如果之前有人问过这个问题,请原谅我,但我找不到这个问题的答案。 我想计算两个单独列表中的对数。每对都被计算在内,包括重复项(这就是为什么我相信集合不会起作用的原因)例如:
fun(A, B):
return count
if A = [1 1 0 0] and B = [1 2 2 1]
returns 2 and not 1
if A = [1 1 0 0] and B = [1 3 3 3]
returns 1
if A = [1 2 2 0] and B = [1 3 2 2]
returns 3
具体来说,我做了一个 mastermind 类型的游戏,这是计算正确颜色错误点总数(在正确颜色正确点从列表中删除之后)
这是我目前拥有的,但它似乎不是很 pythonic。
def count_func(A,B)
count = 0
for b in reversed(B):
used = False
for a in reversed(A):
if b == a and not used:
A.remove(b) #remove that from list
B.remove(b)
count += 1
used = True
return count
顺便说一句,我正在使用 Python 3。感谢您的帮助,如果之前已回答此问题,请告诉我。
编辑: 更正了第二个例子并试图澄清