繁体   English   中英

在列表列表中查找列表元素的出现次数

[英]find occurrences of elements of a list in a list of list

我有一个列表[1, 2, 3]

我想查找此列表的元素出现在列表列表中的次数:

lol = [[1, 2, 4, 5], [2, 3, 1, 2], [1, 2, 3], [3, 2, 6, 7, 1], [1, 4, 2, 6, 3]]

occurrences = 4

我目前正在做的是以下内容:

a = [1, 2, 3]
lol = [[1, 2, 4, 5], [2, 3, 1, 2], [1, 2, 3], [3, 2, 6, 7, 1], [1, 4, 2, 6, 3]]

def get_count(a, b):
    a = set(a)
    return sum([a.issubset(x) for x in b])

print(get_count(a, lol))

这种方法有效,但是当我有 100 个列表的 1000 个列表与列表列表进行比较时,速度很慢( lol保持静态!)

我们还可以保留元素的“顺序”吗? 中间可以有其他元素。 在这种情况下,上述情况的occurrences将为 2

为什么不试试:

testlist = lol                  ##Create a test list that we will work with

for i in range len(testlist):   ##Start a loop that will repeat length of testlist times
    if a in testlist:           ##If/When it finds the first occurrence of the list a
        Occurrences =+ 1         ##It adds 1 to the amount off occurences
        Pos = testlist.index(a)
        testlist.del(Pos)       ##It deletes the instance from the list.

这应该工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM