如何根据两个列表获取自定义元组的计数

2024-04-05

请帮助我使用 from collections import Counter 或任何其他最快的方式获取 PYTHON 中列表 SS1 中列表 SS2 的计数器

SS1 = [(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)]

SS2=[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 3, 4), (1, 3, 5), (1, 3, 6), (1, 4, 5),
(1, 4, 6), (1, 5, 6), (2, 3, 4), (2, 3, 5), (2, 3, 6), (2, 4, 5), (2, 4, 6), (2, 5, 6),
(3, 4, 5), (3, 4, 6), (3, 5, 6), (4, 5, 6)]

这是我尝试过的,但我不知道如何获取每个元组的第 (1,2,4) 个元素的计数

SS1=[(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)]

from collections import Counter
c = Counter(elem[0:3] for elem in SS1[0:6])

for k, v in c.items():
    if (v > 0):
        print(k,v)

现在这对于 0:3 来说是完美的,但我想要的是获得不是 1,2,3 的计数,而是获得 1,2,4 每个元组的元素计数。

抱歉,大家希望你们能理解我的问题……再次抱歉,我是这个Python的新手。


好吧,我假设你想要什么作为你的输出,因为你不清楚。所以基本上你想要的是找到的计数items在 SS1 中 在 SS2 中。

例如次数(1,4,5)发生在SS1

哪一个会是3 i.e in (1, 2, 3, 4, 5),(1, 2, 4, 5, 6),(1, 3, 4, 5, 6)

so for (1, 2, 5)这将是3又对吗?存在于(1, 2, 3, 4, 5),(1, 2, 3, 5, 6),(1, 2, 4, 5, 6)

我想你可能需要的是。

set(tuple2).issubset(tuple1)

所以这里是您的问题的代码:

SS1 = [(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)]
SS2=[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 3, 4), (1, 3, 5), (1, 3, 6), (1, 4, 5),
(1, 4, 6), (1, 5, 6), (2, 3, 4), (2, 3, 5), (2, 3, 6), (2, 4, 5), (2, 4, 6), (2, 5, 6),
(3, 4, 5), (3, 4, 6), (3, 5, 6), (4, 5, 6)]
count=0
count_list = []
for ss2item in SS2:
    for ss1item in SS1:
        if set(ss2item).issubset(ss1item):
            count+=1
    count_list.append(count)        
    count=0
print(count_list)

它的输出将是 SS2 中每个项目的计数列表:

[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据两个列表获取自定义元组的计数 的相关文章

随机推荐