Autor
|
Tema: buscar un resultado especifico en una lista (Leído 4,010 veces)
|
flony
Desconectado
Mensajes: 584
|
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: 584
|
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,646
|
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
|
6,619
|
21 Noviembre 2011, 19:53 pm
por s00rk
|
|
|
[Bash] ¿como podría buscar en varios archivos usando una lista?
Scripting
|
Cergath
|
1
|
4,076
|
24 Febrero 2012, 00:03 am
por Cergath
|
|
|
[BATCH] Buscar una palabra en especifico de un log.
Scripting
|
Vapirox
|
0
|
2,534
|
21 Octubre 2016, 17:13 pm
por Vapirox
|
|
|
Buscar Palabra en una lista
Programación C/C++
|
Dato Vagabundo
|
5
|
3,262
|
17 Enero 2017, 03:08 am
por francosmp
|
|