Как посчитать сколько раз данные встречались в списке кортежей?

Есть список кортежей:

[('834319220',), ('753659610',), ('834319220',), ('753659610',)]

Со временем будет больше элементов в таком же виде.

Как посчитать, сколько раз число попадалось в списке?


Ответы (4 шт):

Автор решения: Danis
dict_ = {}

arr = [('834319220',), ('753659610',), ('834319220',), ('753659610',)]

for i in arr:
    if i in dict_:
        dict_[i] += 1
    else:
        dict_[i] = 1 
→ Ссылка
Автор решения: MaxU

воспользуйтесь collection.Counter:

from collections import Counter

data = [('834319220',), ('753659610',), ('834319220',), ('753659610',)]

res = dict(Counter([x[0] for x in data]).most_common())

результат:

In [79]: res
Out[79]: {'834319220': 2, '753659610': 2}

или так - данные отсортированы по убыванию частоты:

In [80]: Counter([x[0] for x in data]).most_common()
Out[80]: [('834319220', 2), ('753659610', 2)]
→ Ссылка
Автор решения: strawdog
from collections import Counter

arr = [('834319220',), ('753659610',), ('834319220',), ('753659610',)]
print(dict(Counter(arr)))

{('834319220',): 2, ('753659610',): 2}

→ Ссылка
Автор решения: Владислав Харламов
from collection import defaultdict

def counter_iterable_values(iterable):
    counter = defaultdict(int) # init all values 0

    for value in iterable:
        counter[value] += 1

    return counter

Реализация своего Counter.

→ Ссылка