python-3.x 在列表的列表中找到特定列表的次数

yshpjwxd  于 2023-03-20  发布在  Python
关注(0)|答案(1)|浏览(134)

我有以下列表

a = ['Bananas', 'Ananas', 'Peach', 'Grapes', 'Oranges']

以及下面的列表列表

b = [['Bananas', 'Ananas', 'Peach', 'Grapes', 'Oranges'], ['Bananas', 'Ananas', 'Peach', 'Grapes', 'Oranges', 'Pear', 'Apple'], ['Oranges', 'Strawberry', 'Pear'], ... ]

如您所见,在B中,可以有
1.一个和a完全一样的列表
1.与a具有相同项目但顺序不同的列表
1.与1和2相似,但比a多的项目
1.与1和2相似,但少于a
1.与a完全不同的列表
考虑到使用

for value in b:
    print(value)

可以得到b的每个列表,然后将其与a进行比较,如何知道情况1、2和3发生了多少次(包括重复)?
this answer的启发,我尝试了

count_matches = 0

for value in b:
    ff = str(value).strip("[]")
    gg = str(a).strip("[]")
    if gg in ff:
        count_matches += 1

print(count_matches)

但由于顺序的原因(例如,其他项目可能已经添加在中间),这并不起作用。

yyyllmsg

yyyllmsg1#

为了解决这个问题,我将this approach与for循环结合起来以获取值,如下所示

count_matches = 0
for value in b:
    if set(a) <= set(value):
        count_matches += 1
        print("a is in b")

相关问题