@AkaMaloy

Как посчитать количество вхождений элементов в список?

Есть список, например:

[
  ['Егор', '1', 'Вася', '0'],
  ['Петя', '4', 'Вася', '5'],
  ['Егор', '2', 'Петя', '2']
]

Как посчитать, сколько раз в этот список входят Егор, Вася, Петя?
В данном случае ответ должен получится Егор:2 Вася:2 Петя: 2.
  • Вопрос задан
  • 358 просмотров
Решения вопроса 5
0xD34F
@0xD34F
count = {}

for n in sum([ m[::2] for m in arr ], []):
  count[n] = count.get(n, 0) + 1
Ответ написан
Комментировать
LazyTalent
@LazyTalent
Data Engineer, Freelancer
from collections import defaultdict
from pprint import pprint

strange_lists = [['Егор', '1', 'Вася', '0'], ['Петя', '4', 'Вася', '5'], ['Егор', '2', 'Петя', '2'], ['Никита', '4', 'Андрей', '4']]

counter = defaultdict(int)

for strange_list in strange_lists:
    for i in strange_list:
        try:
            int(i)
            continue
        except ValueError:
            pass

        counter[i] += 1
pprint(counter)

# defaultdict(<class 'int'>,
#             {'Андрей': 1,
#              'Вася': 2,
#              'Егор': 2,
#              'Никита': 1,
#              'Петя': 2})
Ответ написан
Комментировать
@Drill
from collections import Counter

lst = [['Егор', '1', 'Вася', '0'], ['Петя', '4', 'Вася', '5'], ['Егор', '2', 'Петя', '2'], ['Никита', '4', 'Андрей', '4']]

print(Counter(filter(str.isalpha,sum(lst,[]))))
Ответ написан
Комментировать
aRegius
@aRegius
Python Enthusiast
Counter | chain.from_iterable | islice
Counter(islice(chain.from_iterable(names), None, None, 2))
Ответ написан
Комментировать
@Ara2
d = [
  ['Егор', '1', 'Вася', '0'],
  ['Петя', '4', 'Вася', '5'],
  ['Егор', '2', 'Петя', '2']
    ]
a={}

for i in range(len(d)):
    for j in range(len(d[i])):
        if not d[i][j].isdigit():
            a[d[i][j]] = a.get(d[i][j], 0) + 1
print(a)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы