计算Python 3中包含3个常用元素的子列表的数目

计算Python 3中包含3个常用元素的子列表的数目,python,list,count,nested-lists,sublist,Python,List,Count,Nested Lists,Sublist,我在Windows7中使用Python3.4和Wing Personal。 我有一个整数列表和第二个包含3个整数的列表。我想确定列表[b]的所有3个元素在列表[a]中出现了多少次 a=[[1, 6, 11,12, 14, 15], [4, 11, 23, 32, 45, 48], [3, 7, 11, 14, 15, 17], [1, 8, 14, 24, 45, 53], [2, 5, 9, 24, 34, 40], [10, 11,13, 14, 15, 22, 36]] b=

我在Windows7中使用Python3.4和Wing Personal。 我有一个整数列表和第二个包含3个整数的列表。我想确定列表[b]的所有3个元素在列表[a]中出现了多少次

a=[[1, 6, 11,12, 14, 15], [4, 11, 23, 32, 45, 48], 
  [3, 7, 11, 14, 15, 17], [1, 8, 14, 24, 45, 53], 
  [2, 5, 9, 24, 34, 40], [10, 11,13, 14, 15, 22, 36]]

b=[11,14,15]
count =0
anotherList = []
for sublist in a:
    for element in b:              
        if element in sublist:
            anotherList.append(element)
            count+=1
    print (anotherList)
    print (count/3)
这里的计数应该是3,而不是3.6,虽然楼层划分可以解决这个问题,但如果列表[a]包含20个子列表,并且在子列表的6个子列表中出现了一个14子列表,则没有帮助

问题在于,这计算列表[b]中的任何元素出现在列表[a]中的总次数,而不是所有3个元素的模式。我除以3,认为这会使计数正确,直到我意识到如果在一个也被计数的列表中只出现14,那么计数就会被取消

请注意,每个列表中的索引都不同,有时在我要标识的元素之间会出现另一个元素。也就是说,元素并不总是以11,14,15的形式组合在一起。有时,两者之间还有另一个因素

我考虑尝试删除除11、14、15之外的所有数字,然后删除所有长度小于3个元素的列表,但不知何故,这似乎不是解决问题的方法


感谢您的帮助

为什么不直接使用
set
?Convert
b
设置a,使用以下方法查看它是否是列表中项目的子集:


为什么不直接使用
set
?Convert
b
设置a,使用以下方法查看它是否是列表中项目的子集:


您可以将
all
sum
一起使用:

print(sum(all(ele in sub for ele in b ) for sub in  a))

您可以将
all
sum
一起使用:

print(sum(all(ele in sub for ele in b ) for sub in  a))

啊。。。微妙的+1:)啊。。。微妙的+1:)列表b必须是dict符号才能工作,对吗?列表b必须是dict符号才能工作,对吗?