Как мога да преброя срещите на елемент от списък?

Как мога да преброя появата на даден елемент в списък в Python?

Решение

Ако искате да преброите само един елемент, използвайте метода count:

>>> [1, 2, 3, 4, 1, 4, 1].count(1)
3

**Не използвайте този метод, ако искате да преброите няколко елемента. Извикването на count в цикъл изисква отделно преминаване през списъка за всяко извикване на count, което може да бъде катастрофално за производителността. Ако искате да преброите всички елементи или дори само няколко елемента, използвайте Counter, както е обяснено в другите отговори.

Коментари (1)

Ако използвате Python 2.7 или 3 и желаете да получите броя на срещите за всеки елемент:

>>> from collections import Counter
>>> z = ['blue', 'red', 'blue', 'yellow', 'blue', 'red']
>>> Counter(z)
Counter({'blue': 3, 'red': 2, 'yellow': 1})
Коментари (4)

list.count(x) връща броя пъти, когато x се появява в списъка

вижте: http://docs.python.org/tutorial/datastructures.html#more-on-lists

Коментари (0)