Как посчитать количество вхождений элементов в список?
Как посчитать, сколько раз в этот список входят Егор, Вася, Петя?
В данном случае ответ должен получится Егор:2 Вася:2 Петя: 2.
- Вопрос задан более двух лет назад
- 262 просмотра
2 комментария
Средний 2 комментария

Так, какой результат должен получиться?
AkaMaloy @AkaMaloy Автор вопроса
Нужно посчитать сколько раз встречается Егор Вася Егор Петя
Решения вопроса 5

count = <> for n in sum([ m[::2] for m in arr ], []): count[n] = count.get(n, 0) + 1
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать

Дмитрий @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(, # )
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
from collections import Counter lst = [['Егор', '1', 'Вася', '0'], ['Петя', '4', 'Вася', '5'], ['Егор', '2', 'Петя', '2'], ['Никита', '4', 'Андрей', '4']] print(Counter(filter(str.isalpha,sum(lst,[]))))
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать

Python Enthusiast
Counter(islice(chain.from_iterable(names), None, None, 2))
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
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)
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
- +2 ещё
Почему http.server отвечает через две секунды?
- 1 подписчик
- 24 минуты назад
- 18 просмотров
Количество вхождений числа в список
Написать функцию odd_numbers, которая получает на вход список целых чисел arr и целое число n и возвращает список, состоящий из n последних вхождений целый чисел списка arr в том же порядке. Пример: ([1, 2, 3, 4, 5, 6, 7, 8, 9], 3) => [5, 7, 9]
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Не считается количество вхождений строки в список
Есть функция для выдачи книг в библиотеке: def books_delivery(self): .
Создать линейный список целых чисел. Вычислить количество вхождений заданного числа в очереди
Создать линейный список целых чисел. Вычислить количество вхождений заданного числа в очереди

В массиве найти количество вхождений числа X, индексы первого и последнего вхождений
A-массив целых чисел, состоящий из элементов,выбранных случайным образом из диапазона X- целое.
3850 / 2138 / 566
Регистрация: 02.09.2015
Сообщений: 5,425

Сообщение было отмечено ryge как решение
Решение
1 2 3 4 5 6
def odd_numbers(arr, n): return [x for x in arr if x % 2 == 1][-n:] if __name__ == "__main__": print(odd_numbers([1, 2, 3, 4, 5, 6, 7, 8, 9], 3) )
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Подсчет числа вхождений в список
Сколько раз встречается в списке "1" и "2"? а) Без вложенного списка б) С учетом вложенных.
Подсчитать количество вхождений элемента Е в список Р
Написать функцию/процедуру, которая: а)подсчитывает количество вхождений элемента Е в список Р;.
Найти количество вхождений подсписка в список
Найти количество вхождений подсписка в список. Например список (1 2 3) в списке (1 2 3 5 9 4 1 2 3.
Подсчет числа вхождений элемента в список
Предикат, считающий сколько раз встречается заданный элемент в списке.
Посчитать количество вхождений элемента в многоуровневый список
Первое вхождение я сделал, но правильно добавить счетчик у меня не получается, постоянно обнуляет.
Количество вхождений всех элементов списка в этот список
Здравствуйте! не могу решить задачу такого типа: дан список из элементов (к примеру: 2, 3, 6, 2.
Посчитать количество одинаковых элементов в списке
Дан список целых чисел. Посчитать, сколько раз в нем встречается каждое число. Например, если дан список [1, 1, 3, 2, 1, 3, 4], то в нем число 1 встречается три раза, число 3 — два раза, числа 2 и 4 — по одному разу.
Решение задачи на языке программирования Python
Для хранения количества каждого встречающегося в списке значения создадим словарь. В нем ключами будут числа, которые встречаются в списке, а значениями — количества этих чисел в списке. Для примера, приведенного выше, в итоге должна получиться такая структура: .
Пусть в программе будет функция, которая заполняет список случайными числами в диапазоне и количестве, указанными пользователем.
Другая функция будет считать количество каждого значения и заносить данные в словарь. Алгоритм подсчета заключается в следующем. Если очередной элемент списка уже есть в качестве ключа словаря, то следует увеличить значение этого ключа на единицу. Если очередного элемента списка нет в качестве ключа в словаре, то такой ключ следует добавить и присвоить ему значение, равное единице.
Для того, чтобы вывести содержимое словаря в отсортированном по возрастанию ключей виде, используется функция sorted . Она сортирует ключи словаря и помещает их в список.
from random import randint def fill_list(minimum, maximum, amount, empty_list): for i in range(amount): empty_list.append(randint(minimum, maximum)) def analysis(from_list, to_dict): for i in from_list: if i in to_dict: to_dict[i] += 1 else: to_dict[i] = 1 lst = [] dct = {} mn = int(input('Минимум: ')) mx = int(input('Максимум: ')) qty = int(input('Количество элементов: ')) fill_list(mn, mx, qty, lst) analysis(lst, dct) for item in sorted(dct): print(f"'': ")
Минимум: 100 Максимум: 104 Количество элементов: 20 '100': 2 '101': 5 '102': 3 '103': 7 '104': 3
С другой стороны, если не требуется сохранять количества значений в программе, а надо только вывести их на экран (сохранить в файл, передать по сети), то задачу проще решить через использование спискового метода count() , который считает, сколько раз переданное в него значение встречается в списке, к которому применяется метод.
Если перебирать элементы самого списка, то метод count() будет вызываться несколько раз на одно и то же значение, если оно встречается в списке не единожды. Чтобы избежать этого, получим из списка множество и будем перебирать его элементы. Во множестве не бывает одинаковых значений.
from random import randint mn = int(input('Минимум: ')) mx = int(input('Максимум: ')) qty = int(input('Количество элементов: ')) lst = [randint(mn, mx) for i in range(qty)] s = set(lst) for i in s: print(f"'': ")
X Скрыть Наверх
Решение задач на Python
Быстро посчитать вхождение элементов одного списка в другой Python
list1 содержит от 10 до 20 000 элементов, в среднем 6 000 элементов, list2 содержит около пары тысяч элементов. list2 у меня динамически грузится с жесткого диска в ещё одном внешнем цикле, их около 10 000. Как-то печально всё со скоростью перелопачивания. sub_list это на самом деле строки для csv файла, который я пытаюсь сгенерировать. Это как-то можно быстрее делать, например, внеся батарейки на сишке, помазав всё лямбдами или как-то ещё (на первый взгляд кажется что нельзя)? А то чувствую до утра считать будет. Не к спеху, конечно, всего 4 раза посчитать надо будет с разными параметрами, но на будущее хочется знать.

peregrine ★★★★★
05.05.20 22:37:56 MSK