在Python列表中查找并返回重复值的名称和计数

Bry*_*yan 2 python dictionary

我有一个值列表,表示一段正则表达式在字符串中匹配的次数.从这里,我想找到不止一次出现的数字及其数量.例如,因为[2, 2, 2, 0, 2, 1, 3, 3]我想要{2:4,3:2}输出,如果它在一个字典中,或者[[2,4],[3,2]]它在列表列表中.我正在寻找最快,最简洁的方法来做到这一点.现在,我通过以下代码完成,但认为这是详细的最佳方式.

numWinners=[2, 2, 2, 0, 2, 1]
tieCount={x:numWinners.count(x) for x in numWinners}
ties=dict()
for key, value in tieCount.items():
    if value>1:
        ties[key]=value

print ties
{2: 4, 3: 2}
Run Code Online (Sandbox Code Playgroud)

列表或字典输出对我来说不是一个问题 - 再次,无论什么是最快和最简洁的.

DSM*_*DSM 5

我将结合collections.Counter词典理解来选择重复项:

>>> from collections import Counter
>>> numWinners = [2, 2, 2, 0, 2, 1, 3, 3]
>>> counts = Counter(numWinners)
>>> {k: v for k,v in counts.items() if v > 1}
{2: 4, 3: 2}
Run Code Online (Sandbox Code Playgroud)