Python - FRECUENCIA LISTAS EN PYTHON

 
Vista:

FRECUENCIA LISTAS EN PYTHON

Publicado por Ian (3 intervenciones) el 21/10/2019 18:35:34
Hola a todos y gracias de antemano. Tengo el siguiente programa con una función llamada dice_freqs que toma como parámetro una lista y devuelve una lista de 6 elementos conteniendo la frecuencia de aparición de los números del 1 al 6, en este orden.

Por ejemplo:

input: [4,2,3,1,4,4,4,4,6,1,5,5]
output: [2, 1, 1, 5, 2, 1]


1
2
3
4
5
import functions
 
throws = [4,2,3,1,4,4,4,4,6,1,5,5]
frecs = functions.dice_freqs(throws)
print(frecs)

1
2
3
4
from collections import Counter
def dice_freqs(throws):
    position = [(Counter(throws).most_common()[0][0])]
    return(position)

EL PROBLEMA EN EL CÓDIGO QUE TENGO ES QUE UNICAMENTE ME DEVUELVE [4] EN VEZ DE UNA LISTA CON LOS ELEMENTOS ORDENADOS DEL 1 AL 6 Y EN ELLOS EL NÚMERO DE REPETICIONES DE CADA UNO QUE APARECE EN LA LISTA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

FRECUENCIA LISTAS EN PYTHON

Publicado por joel (901 intervenciones) el 21/10/2019 19:11:28
Hola lan, la verdad es que nunca he utilizado Counter(), por lo que ahí no te puedo ayudar... pero puedes hacer algo como:
1
2
l=[4,2,3,1,4,4,4,4,6,1,5,5]
result=[l.count(i) for i in range(1,max(l)+1)]

Te devolvera: [2, 1, 1, 5, 2, 1]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 19 puestos en Python (en relación al último mes)
Gráfica de Python

FRECUENCIA LISTAS EN PYTHON

Publicado por Ian (3 intervenciones) el 21/10/2019 23:42:20
Muchísimas gracias por la ayuda y por el tiempo dedicado. Tengo una pequeña duda con el codigo utilizado, quería saber si podrías comentar el propio codigo, o añadir un nuevo comentario explicando brevemente el codigo utilizado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

FRECUENCIA LISTAS EN PYTHON

Publicado por joel (901 intervenciones) el 22/10/2019 09:04:03
Si claro... es sencillo...

Lo que hace, es un bucle del 1 al valor máximo que haya en la lista, y va contando la cantidad para cada uno de los valores.
Siguiendo este ejemplo, el máximo es 6 por lo que va recorriendo del 1 al 6 y contando las veces que se repite cada uno de ellos.

Espero que me haya sabido explicar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

FRECUENCIA LISTAS EN PYTHON

Publicado por tincopasan (1082 intervenciones) el 21/10/2019 19:39:39
hola;
haría algunos cambios en esos códigos

1
2
3
4
5
6
7
8
9
10
11
import functions
throws = [4,2,3,1,4,4,4,4,6,1,5,5]
 
frecs = [x[1] for x in sorted(dice_freqs(throws))]
print(frecs)
 
from collections import Counter
 
def dice_freqs(throws):
    position = Counter(throws).most_common(6)
    return(position)

Suponiendo que puedas modificar ambos códigos.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 19 puestos en Python (en relación al último mes)
Gráfica de Python

FRECUENCIA LISTAS EN PYTHON

Publicado por Ian (3 intervenciones) el 21/10/2019 23:45:04
Muchisimas gracias también por su esfuerzo y tiempo dedicado. Tamién tengo unas pequeñas dudas en el codigo empleado, por lo que si podria comentar brevemente el codigo se lo agradecería mucho. ASÍ MISMO QUERÍA SABER POR QUE ESTE NUEVO CODIGO NO ME DA ERROR EN LA EJECUCION PERO NO SE MUESTRA EL RESULTADO DESEADO. MUCHAS GRACIAS DE ANTEMANO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 19 puestos en Python (en relación al último mes)
Gráfica de Python

FRECUENCIA LISTAS EN PYTHON

Publicado por Ian (3 intervenciones) el 22/10/2019 00:08:01
EL CÓDIGO ES EL SIGUIENTE: EL PRIMER ARCHIVO NO SE PUEDE MODIFICAR

1
2
3
4
5
6
7
import functions
 
throws = [4,2,3,1,4,4,4,4,6,1,5,5]
 
frecs = functions.dice_freqs(throws)
 
print(frecs)

1
2
3
4
def dice_freqs(throws):
    for elements in range(1,max(throws)+1):
        result = [throws.count((elements))]
        return result
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar