Python - Problema con ciclos y arreglos

   
Vista:

Problema con ciclos y arreglos

Publicado por Jonathan (1 intervención) el 27/05/2016 21:52:35
python
El programa básicamente debe generar numeros aleatorios (puede ser del 1 al 100) que representarán las placas de los carros
Las placas se guardan en un arreglo(1), luego se debe mostrar otro arreglo(2) que incluyen los numero aleatorios pero no repetidos,[ es decir si se crean 10 aleatorios ej:1,2,3,3,4,2,3,4,5,5 el segundo arreglo debería tener solo 1,2,3,4,5], y luego otro arreglo(3) mostrando cuantas veces se repite un numero en el primero arreglo.
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

Problema con ciclos y arreglos

Publicado por Daniel Vera (1 intervención) el 28/05/2016 16:07:53
Hola Jonathan, par resolver este problema deberías intentar recorrer el arreglo (o lista) uno a uno e ir evaluando la cantidad de veces que se repite la placa en una copia de la lista. En python existe la función count(x) que te devuelve la cantidad de veces que se encuentra un ítem dentro de la lista. A medida que vas evaluando cada item vas agregando estos resultados en otro arreglo (lista). Dentro de la lógica deberás validar que no se evalúen items que ya hayas agregado en tu lista de resultados, así no llenaras tu lista con ítem repetidos.

Te dejo un ejemplo del código que puedes mejorar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'''
	Autor: Daniel Vera

	El sistema de vigilancia del transpote publico entrega 
	una  lista de longitud n con el codigo de placa de los 
	vehiculos  que  invaden  el  carril  exclusivo de este 
	sistema  de  transporte  de  pasajeros. La lista puede 
	contener   codigos   repetidos   que   corresponden  a 
	vehiculos  cometieron  esta  infraccion mas de una vez. 
	La  multa  por  una  infraccion  es  de  $100, por dos 
	infracciones el valor se duplica, por tres se triplica, 
	etc. Escriba un programa que lea la lista de codigos y 
	muestre  para  cada  uno , la cantidad de infracciones 
	cometidas y el total de la multa a pagar.
'''
 
if __name__ == "__main__":
	#Lista de infractores Inicial
	infractores = ['ABC123',
	               'ABC456',
	               'ABC789',
	               'ABC123',
	               'ABC456',
	               'ABC123']
	print ('>>>> Lista de Infractores <<<<')
	#Presenta Lista infractores
	for i in range(len(infractores)):
		print (infractores[i])
 
	#Se crea una lista vacia que contendrá los resultados
	resultado = [[]]
	#Limpio la lista de resultados
	resultado.clear()
 
	print ('Procesando...')
	#Recorrer lista de infractores
	for x in range(len(infractores)):
		#Encerar variable de cantidad de infracciones
		cantInfrac = 0
		#Pregunta si la placa ya fue evaluada (si ya esta en la lista de resultados)
		if resultado.count([infractores[x],infractores.count(infractores[x])]) == 0:
			#count(x) devuelve el número de veces que x aparece en la lista.			
			cantInfrac = infractores.count(infractores[x])
			#Se agrega el resultado de la evaluacion en la lista de resultados
			resultado.append([infractores[x], cantInfrac, cantInfrac * 100 ])
 
	#Presentar resultado
	for i in range(len(resultado)):
		print (resultado[i])

Saludos,
Daniel Vera
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