Python:根据值检查列表中的事件

use*_*652 15 python list

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

我想知道1在这个列表中出现两次,有什么有效的方法吗?

wkl*_*wkl 40

lst.count(1)会返回它发生的次数.如果您要计算列表中的项目,O(n)就是您要获得的.

列表中的常规函数​​是list.count(x),并将返回x列表中出现的次数.


Kat*_*iel 13

您是否询问列表中的每个项目是否都是唯一的?

len(set(lst)) == len(lst)
Run Code Online (Sandbox Code Playgroud)

是否1出现不止一次?

lst.count(1) > 1
Run Code Online (Sandbox Code Playgroud)

请注意,上述内容不是最有效的,因为它不会短路 - 即使1发生两次,它仍会计算其余的事件.如果你想要它短路,你将不得不写一些更复杂的东西.

一个元素是否出现不止一次?

lst[0] in lst[1:]
Run Code Online (Sandbox Code Playgroud)

每个元素出现的频率如何?

import collections
collections.Counter(lst)
Run Code Online (Sandbox Code Playgroud)

别的什么?