Python - ¿Conteo parcial con Count()?

 
Vista:
sin imagen de perfil
Val: 31
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

¿Conteo parcial con Count()?

Publicado por Joan L (7 intervenciones) el 15/05/2022 01:37:07
Hola, buen día. Espero que estén bien.

Para mayor claridad, voy a poner el ejercicio:

Una empresa xx quiere ejecutar un proyecto para desarrollar un software que permita controlar las estadísticas de ventas al finalizar cada día.
El departamento de ventas está habilitado para vender diferentes clases de productos en el día, por tanto, registra en una lista la letra inicial del nombre del producto que se vendió, de acuerdo al orden de llegada y a su preferencia.
Al finalizar el día, se necesita que se resuma cuantos productos de la misma clase se aplicaron de manera consecutiva.
Entrada
Una lista con cada una las letras iniciales del nombre de los productos vendidos, en el mismo orden de llegada.
(p p p j j a a a a a a a a a a i i i v v a a a a j)

Salida
Una fila con las letras iniciales de los nombres de los productos vendidos, de acuerdo al orden de llegada, separadas por un espacio, y otra fila con la cantidad de productos de la misma clase que se vendieron en forma consecutiva.

(p j a i v a j)
(3 2 10 3 2 4 1)


La primera parte de la salida ya la tengo. Usé el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ENTRADA
producto = input().split()
 
####CREACIÓN DE FUNCIONES
 
sol = "".join(map(str,producto))#Adecuación (función no vista en clase)
def mirar_repetidos(sol):
  secuencia = [sol[0]]
  for elemento in sol[1:]:
    if elemento != secuencia[len(secuencia)-1]:
      secuencia.append(elemento)
  return secuencia
secuencia = mirar_repetidos(sol)
 
####CREACIÓN DE FUNCIÓN IMPRIMIR
def imprimir_datos():
  sec = " ".join(map(str,secuencia))#Adecuación (función no vista en clase)
  print(sec)
 
##INVOCAR FUNCIÓN IMPRIMIR
imprimir_datos()

Sin embargo, para la segunda parte de la salida no sé cómo hacerlo. Y, de hecho, estaba pensando si se puede usar la función count() parcialmente; es decir, en vez de mostrarme todos los resultados repetidos por toda la lista, lo haga hasta que los índices consecutivos dejen de contener el mismo elemento.

Quisiera saber si eso es factible o si hay alguna alternativa para poder solucionar la segunda parte de código.

Les agradecería mucho cualquier ayuda que me puedan brindar.

Saludos.
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
sin imagen de perfil
Val: 31
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

¿Conteo parcial con Count()?

Publicado por JoanL (7 intervenciones) el 15/05/2022 06:13:08
Hola, tincopasan

Gracias por tu aporte. Estaba analizando tema e¡que enviaste y los resultados esperados no se parecen a los que se deberían mostrar en este código. Nuevamente, agradezco mucho que me hayas redirigido allá.
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

¿Conteo parcial con Count()?

Publicado por tincopasan (1082 intervenciones) el 15/05/2022 06:25:03
evidentemente no entendiste el código, en el otro ejercicio se ingresa una cadena, donde cada caracter se separa con una coma, no una lista como en este ejercicio, por lo tanto esa parte obvio que no es igual, además devuelve en mayúsculas y no en minúsculas como pide acá, pero para que veas, si a "(p p p j j a a a a a a a a a a i i i v v a a a a j)" lo convierto a: "p,p,p,j,j,a,a,a,a,a,a,a,a,a,a,i,i,i,v,v,a,a,a,a,j" devuelve:
Línea de salida1: P J A I V A J
Línea de salida2: 3 2 10 3 2 4 1
que salvo las diferencias mencionadas y que no es una tupla , es el resultado esperado, pero claro, no voy a modifcar el código, para que funcione como esperás, ya que es orientativo.
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