четверг, 21 сентября 2017 г.

Функции. Посчитать количества одинаковых элементов в списке

Функции. Посчитать количества одинаковых элементов в списке

Тема: Функции 
Дан список целых чисел. Посчитать, сколько раз в нем встречается каждое число. Например, если дан список [1, 1, 3, 2, 1, 3, 4], то в нем число 1 встречается три раза, число 3 - два раза, числа 2 и 4 - по одному разу.
Для хранения количества каждого встречающегося в списке значения создадим словарь. В нем ключами будут числа, которое встречается в списке, а значениями - количества этих чисел в списке. Для примера, приведенного выше, в итоге должен был бы получиться такой словарь: {1:3, 3:2, 2:1, 4:1}.
Пусть в программе будет функция, которая заполняет список случайными числами в диапазоне и количестве, указанными пользователем.
Другая функция будет считать количество каждого значения и заносить данные в словарь. Алгоритм подсчета заключается в следующем. Если очередной элемент списка уже есть в качестве ключа словаря, то следует увеличить значение этого ключа на единицу. Если очередного элемента списка нет в качестве ключа в словаре, то такой ключ следует добавить и присвоить ему значение, равное единице.
Для того, чтобы вывести содержимое словаря в отсортированном по возрастанию ключей виде, используется функция sorted(). Она сортирует ключи словаря.

lst = []
dct = {}
def make_list(minumum, maximum, qty):
    from random import random
    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])
 
Пример выполнения:
Минимум: -10
Максимум: 10
Количество элементов: 20
'-8':1
'-7':2
'-6':1
'-5':1
'-3':3
'-1':1
'0':4
'4':1
'5':2
'7':2
'8':1
'10':1

Комментариев нет:

Отправить комментарий

Всероссийский конкурс  научно-технологических проектов страница конкурса https://dm-centre.ru/sirius-konkurs-projectov Цель конкурс...