如何获取元素在Python列表中出现的次数
我目前正在学习python,遇到了一个问题 我需要知道元素是否是列表的一部分,基本上是列表中出现的频率: 例如,假设我有以下列表:如何获取元素在Python列表中出现的次数,python,python-3.x,list,python-2.7,variables,Python,Python 3.x,List,Python 2.7,Variables,我目前正在学习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](顺序并不重要,只要三个数字同时出现即可)。所以,出现
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)
或者用于循环,但它们只检查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
>>>print(sum)(如果{1,2,4}你想检查的数字列表中x的1)是否有唯一的元素?即[1,2,4]
是否应该由唯一的值组成?@joonyongpark是的,它有唯一的元素。我无法检查,例如,[1,1,4]或[2,2,2]好的,那么@Selcuk的答案似乎足够好了。我投赞成票。