如何获取元素在列表中出现的次数 Python

The*_*nds 2 python variables list python-2.7 python-3.x

我目前正在学习 python 并遇到了一个问题。

我需要知道一个元素是否是列表的一部分,基本上是列表中出现的频率:

例如,假设我有以下列表:

A = [[1, 2, 4, 5], [2, 3, 5], [1, 2, 4, 5],
     [1, 2, 3, 5], [1, 2, 3, 4, 5], [2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)

假设我需要知道以下数字是否出现在列表中: [1, 2, 4]

如您所见,数字[1, 2, 4]出现在列表、位置A[0]A[2]和 上A[4](顺序无关紧要,只要它们三个同时出现即可)。所以,出现的频率应该是3。

我试着用any()看看是否有办法检查 x 是否是列表 A 的一部分

any(x == [1,2,4] for x in  A)
Run Code Online (Sandbox Code Playgroud)

或者使用for循环,但是他们只检查x的每个个体是否是A的一部分,但我需要知道是否出现了某个系列的元素。

for i in range(len(x)):
    count=0
    print("i",i)
    for j in range(len(x[i])):
        print("j",j)
        for k in range(len(A)):
            print("k",k)
            for l in range(len(A[k])):
                if x[i][j]==A[k][l]:
                    count+=1
Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法在 Python 中检查这个?

Sel*_*cuk 7

您可以使用set操作,因为顺序并不重要:

>>> print(sum(1 for x in A if {1, 2, 4} <= set(x)))
3
Run Code Online (Sandbox Code Playgroud)