计算元素在列表中的出现次数

  • 本文关键字:元素 列表 计算 python
  • 更新时间 :
  • 英文 :


我有一个元素列表:

l = ['a', 'b', 'b', 'a', 'c', 'd', 'd', 'c']

我想生成一个元素出现的列表,所以对于每个元素,它都会计算它出现的次数,直到这一点:

这样我会得到:

elements_occurence: [1, 1, 2, 2, 1, 1, 2, 2]

我试过了:

occurrences = {}
for i in l:
if i in occurrences:
occurrences[i] += 1
else:
occurrences[i] = 1

但它给了我这样的结果:

{'a': 2, 'b': 2, 'c': 2, 'd': 2}

您当前正在检查dict的最终结果;保存"迭代时的中间值,您将得到您的结果:

occurrences = {}
elements_occurence = []
for i in l:
if i in occurrences:
occurrences[i] += 1
else:
occurrences[i] = 1
elements_occurence.append(occurrences[i])
print(elements_occurence)
print(occurrences)

提供:

[1, 1, 2, 2, 1, 1, 2, 2]
{'a': 2, 'b': 2, 'c': 2, 'd': 2}

提高计数的几种方法(按"蟒蛇">的升序(:

  1. 使用setdefault:

    for i in l:
    occurrences[i] = occurrences.setdefault(i, 0) + 1
    
  2. 使用get:

    for i in l:
    occurrences[i] = occurrences.get(i, 0) + 1
    
  3. 使用defaultdict:

    from collections import defaultdict
    occurrences = defaultdict(int)
    for i in l:
    occurrences[i] += 1
    

最新更新