如何获取元素出现在列表中的次数 Python
How to get the amount of times a element appears on a list Python
我目前正在学习 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 中是否有更有效的检查方法?
您可以使用 set
操作,因为顺序并不重要:
>>> print(sum(1 for x in A if {1, 2, 4} <= set(x)))
3
我目前正在学习 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 中是否有更有效的检查方法?
您可以使用 set
操作,因为顺序并不重要:
>>> print(sum(1 for x in A if {1, 2, 4} <= set(x)))
3