| 
	
		|  Autor | Tema: buscar un resultado especifico en una lista  (Leído 4,641 veces) |  
	| 
			| 
					
						| flony 
								 
								
								 Desconectado 
								Mensajes: 585
								
								   | 
 
tengo una lista de números quiero saber si la suma de alguna combinación de ellos da un número especifico si es así lo muestre por pantalla esos números y si no que muestre no hay combinación posible la lista es [1484.22, 108232.76, 176396.21, 24198.48, 169730.89, 678014.29, 290686.27, 230137.01, 44312.82, 13455.77, 28043.32, 192772.68, 18959.6, 25437.53, 541800.77, 12484.72, 57927.72, 409054.79, 40875.61, 71816.21, 113477.16, 222382.1, 7257.94, 143278.25, 2273.06, 118080.24, 45247.6, 133151.58, 267.97, 1018.53, 50602.21, 19182.73, 373.29, 14702.22, 4041.68, 80831.78, 1189.09, 20255.8, 46619.66, 5016.87, 23460.55, 109208.0, 107395.87] el código que tengo es el siguiente  import pandas as pd
 lista_trabajar = pd.read_excel('preproceso.xlsx')
 
 monto_a_trabajar = lista_trabajar.iloc[:, -1]
 monto = monto_a_trabajar.tolist()
 monto_A_Buscar = 1346675.28
 resultado = []
 
 print (monto)
 
 def suma(monto, monto_A_Buscar):
 for i in monto:
 resultado.append(i)
 resul = sum(resultado)
 if resul == monto_A_Buscar:
 return resultado
 else: print ('no salio')
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 si un problema no tiene solucion entonces no es un problema...es algo inevitable  |  |  |  | 
			| 
					
						| reymosquito 
								
								 Desconectado 
								Mensajes: 81
								
								
								
								
								
								   | 
 
hay muchas formas de hacerlo, te muestro una, como al fin y al cabo solo estás trabajando con una lista no hago lo de pandas, cambio los nombres para escribir menos y agrego un último valor a la lista solo para verificar si funciona: lista = [1484.22, 108232.76, 176396.21, 24198.48, 169730.89, 678014.29, 290686.27, 230137.01, 44312.82, 13455.77,         28043.32, 192772.68, 18959.6, 25437.53, 541800.77, 12484.72, 57927.72, 409054.79, 40875.61, 71816.21, 113477.16,         222382.1, 7257.94, 143278.25, 2273.06, 118080.24, 45247.6, 133151.58, 267.97, 1018.53, 50602.21, 19182.73,         373.29, 14702.22, 4041.68, 80831.78, 1189.09, 20255.8, 46619.66, 5016.87, 23460.55, 109208.0, 107395.87,1345191.06]k =1346675.28 def suma(iterador,k):    resultado = []    for elemento in iterador:        if k - elemento in lista :            resultado.append((elemento,k- elemento))    if len(resultado) > 0:        return resultado    return 'No salió' print(suma(lista,k))  
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| chronologie 
								
								 Desconectado 
								Mensajes: 1
								
								
								
								
								
								   | 
 
dependiendo de la cantidad de datos, puedes hacer una busqueda binaria y ahorrar proceso y mayor rapidez. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| flony 
								 
								
								 Desconectado 
								Mensajes: 585
								
								   | 
 
muchas gracias por la data  |  
						| 
								|  |  
								|  |  En línea | 
 
 si un problema no tiene solucion entonces no es un problema...es algo inevitable  |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Buscar en la lista de contactos de Messeger Programación Visual Basic
 | <[(x)]> | 3 | 3,773 |  31 Mayo 2009, 06:14 am por <[(x)]>
 |  
						|   |   | agenda en c... problema con mostrar contactos y buscar contacto en especifico Programación C/C++
 | attackers | 7 | 7,014 |  21 Noviembre 2011, 19:53 pm por s00rk
 |  
						|   |   | [Bash] ¿como podría buscar en varios archivos usando una lista? Scripting
 | Cergath | 1 | 4,370 |  24 Febrero 2012, 00:03 am por Cergath
 |  
						|   |   | [BATCH] Buscar una palabra en especifico de un log. Scripting
 | Vapirox | 0 | 2,836 |  21 Octubre 2016, 17:13 pm por Vapirox
 |  
						|   |   | Buscar Palabra en una lista Programación C/C++
 | Dato Vagabundo | 5 | 3,806 |  17 Enero 2017, 03:08 am por francosmp
 |    |