在列表列表中找到特定列表的次数

2024-10-06 12:10:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下清单

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
  2. A项目相同但顺序不同的列表
  3. 与1和2相似,但项目多于a
  4. 与1和2相似,但项目少于a
  5. A

考虑到使用

for value in b:
    print(value)

我们可以得到每个b列表,然后将其与a进行比较,如何知道案例1、2和3发生了多少次(包括重复)


受{a1}的启发,我进行了实验

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)

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


Tags: 项目in列表for顺序valuecountpear
1条回答
网友
1楼 · 发布于 2024-10-06 12:10:43

为了解决这个问题,我将this approach与for循环相结合以获得值,如中所示

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

相关问题 更多 >