SHOW:
|
|
- or go back to the newest paste.
1 | """Написать функцию, на вход которой подается массив с числовыми элементами. Функция должна вернуть отсортированный массив | |
2 | по частоте повтора элементов в нем, | |
3 | к примеру someFunction([5, 9, 2, 4, 1, 2, 5, 8, 2, 2, 8, 4, 5]) вернет вот такой результат - [2, 2, 2, 2, 5, 5, 5, 4, 4, 8, 8, 9, 1].""" | |
4 | - | def deleteAllElements(arr, element): |
4 | + | def deleteAllElements(arr, element):#Функция удаления всех элемнтов переданных по аргументу |
5 | while(arr.count(element) > 0): | |
6 | arr.remove(element) | |
7 | return arr | |
8 | def sortCountRepeat(arr): | |
9 | sort_arr = [] | |
10 | while(len(arr)>0): | |
11 | max_count = arr.count(arr[0]) | |
12 | elem = arr[0] | |
13 | - | for i in range(len(arr)): |
13 | + | for i in range(len(arr)):#Ищем элемент у которого максимальное количество повторений |
14 | if(arr.count(elem)<arr.count(arr[i])): | |
15 | elem = arr[i] | |
16 | max_count = arr.count(arr[i]) | |
17 | - | arr = deleteAllElements(arr,elem) |
17 | + | arr = deleteAllElements(arr,elem)#Удаляем его из массива |
18 | - | print(arr) |
18 | + | timedArr = [elem for i in range(max_count)]#Создаем новый массив с тем же количеством повторений данного элемента, которое было в массиве |
19 | - | timedArr = [elem for i in range(max_count)] |
19 | + | sort_arr.extend(timedArr)#Добовляем его в конец нашего "отсортированного" массива |
20 | - | sort_arr.extend(timedArr) |
20 | + | |
21 | return sort_arr | |
22 | print(sortCountRepeat([5, 9, 2, 4, 1, 2, 5, 8, 2, 2, 8, 4, 5])) |