If you don’t want to use libraries, here’s an idea using dictionaries:
First I create a dictionary with occurrences
lista = [1,1,2,3,3,3]
ocorrencias = {}
for numero in lista:
if numero in ocorrencias: #Se o numero ja esta no dicionario
ocorrencias[numero] += 1
else: #Se não está, adiciono em ocorrencias
ocorrencias[numero] = 1
#OU ocorrencias.update({numero:1})
>>> print ocorrencias
{1: 2, 2: 1, 3: 3}
Then create the sorted list from the occurrences dictionary
def pega_maior_ocorrencia(dicionario):
maior_ocorrencia = 0
chave = None
for key, value in dicionario.iteritems(): #Python2.X
#for key, value in d.items(): #Python3.X
if value > maior_ocorrencia:
maior_ocorrencia = value
chave = key
del dicionario[chave] #deleta do dict mesmo dentro da função
return [chave]*maior_ocorrencia
lista_ocorrencias = []
for i in range(len(ocorrencias)):
lista_ocorrencias += pega_maior_ocorrencia(ocorrencias)
>>> print lista_ocorrencias
[3, 3, 3, 1, 1, 2]
The list goes like this: list = [1,1,2,3,3,3] and I want it to be ordered by amount of occurrence, then it would be: list = [3,3,3,1,1,2]. I have no idea how to do this
– Science and society