python 从两个单独的列表中计数对,列表中没有唯一值(我认为集合不起作用)

标签 python python-3.x algorithm list

<分区>

如果之前有人问过这个问题,请原谅我,但我找不到这个问题的答案。 我想计算两个单独列表中的对数。每对都被计算在内,包括重复项(这就是为什么我相信集合不会起作用的原因)例如:

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。感谢您的帮助,如果之前已回答此问题,请告诉我。

编辑: 更正了第二个例子并试图澄清

最佳答案

您可以删除 bool 值 'used' 和字符串的反转:

def count_func(A,B):
    count = 0
    for b in B:
        for a in A:
            if b == a:
             A.remove(a)
             count += 1
             break
return count

关于python 从两个单独的列表中计数对,列表中没有唯一值(我认为集合不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49061953/

相关文章:

python - zeep requests.exceptions.SSLError : ("bad handshake: Error([(' SSL routines', 'ssl3_get_server_certificate' , 'certificate verify failed' )],),)

python - 日志中的自定义 Logger 类和正确的行号/函数名称

python - 使用 Python 从 REST API 获取大型分页数据

algorithm - 将距离设置为 MinHashing 算法的相似性度量

java - 在 Hashmap<Arraylist,Arraylist> 中找到最大值的最佳方法

python - 新手Q 关于Scrapy pipeline.py

python - 如何使用从多个 URL 抓取的网络内容创建 CSV 文件?

python - 如何在 Django 聚合查询的 GROUP BY 子句中正确包含列?

python - 在python中添加范围

c# - Kadane 的算法找到具有最大总和的子数组