Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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):#Функция удаления всех элемнтов переданных по аргументу
  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)):#Ищем элемент у которого максимальное количество повторений
  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)#Удаляем его из массива
  18.         timedArr = [elem for i in range(max_count)]#Создаем новый массив с тем же количеством повторений данного элемента, которое было в массиве
  19.         sort_arr.extend(timedArr)#Добовляем его в конец нашего "отсортированного" массива
  20.         del timedArr
  21.     return sort_arr
  22. print(sortCountRepeat([5, 9, 2, 4, 1, 2, 5, 8, 2, 2, 8, 4, 5]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement