【问题标题】:How to get the amount of times a element appears on a list Python如何获取元素出现在列表Python中的次数
【发布时间】:2020-10-14 01:53:01
【问题描述】:

我目前正在学习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]]

假设我需要知道以下数字是否出现在列表中:[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)

或者使用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

有没有更有效的方法在 Python 中进行检查?

【问题讨论】:

  • 您要检查的号码列表是否有独特的元素?即 [1, 2, 4] 应该包含唯一值吗?
  • @JoonyoungPark 是的,它有独特的元素。我无法检查,例如 [1, 1, 4] 或 [2,2,2]
  • 好的,那么@Selcuk 的回答似乎已经足够好了。我赞成。

标签: python python-3.x list python-2.7 variables


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多