Skip to content

Instantly share code, notes, and snippets.

@jigi-33
Created May 25, 2020 17:45
Show Gist options
  • Save jigi-33/364fac0c79cfffbc1efc7abf1bf52076 to your computer and use it in GitHub Desktop.
Save jigi-33/364fac0c79cfffbc1efc7abf1bf52076 to your computer and use it in GitHub Desktop.
Подсчет количества одинаковых элементов в списке с помощью словаря и цикла for
"""
СПИСОК + СЛОВАРЬ: подсчет количества одинаковых элементов в списке
==================================================================
"""
# Дан список целых чисел. Посчитать, сколько раз в нем встречается каждое число.
# Например, если дан список [1, 1, 3, 2, 1, 3, 4], то в нем число 1 встречается три раза, число 3 - два раза, числа 2 и 4 - по одному разу.
# Для хранения количества каждого встречающегося в списке значения создадим _словарь_.
# В нем ключами будут числа, которое встречается в списке, а значениями - количества этих чисел в списке.
# Также в программе будет функция, которая заполняет список случайными числами в диапазоне и количестве, указанными пользователем.
# Другая функция будет считать количество каждого значения и заносить данные в словарь.
# Для того, чтобы вывести содержимое словаря в отсортированном по возрастанию ключей виде, используется функция sorted(), она сортирует ключи словаря.
from random import random
lst = []
dct = {}
def make_list(minumum, maximum, qty):
for i in range(qty):
lst.append(int(random()*(maximum-minumum+1))+minumum)
def analysis():
for i in lst:
if i in dct:
dct[i] += 1
else:
dct[i] = 1
mn = int(input('Минимум: '))
mx = int(input('Максимум: '))
qty = int(input('Количество элементов: '))
make_list(mn, mx, qty)
analysis()
for i in sorted(dct):
print("'%d':%d" % (i,dct[i])
# или же можно можно воспользоваться как другим способом с применением collections.Counter()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment