¿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:
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.
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


0