[Python-es] Que modulo me recomiendan.

Chema Cortes pych3m4 en gmail.com
Vie Sep 26 03:28:45 CEST 2014


El 25 de septiembre de 2014, 0:25, Peon Blanco <peonblanco83 en gmail.com>
escribió:

> Alguien me podría orientar.
>
> ya que a un no e podido resolver el problema de que me repita los id.
>


Supongamos que tienes los datos en la variable "Todo" y que tenemos una
función llamada "casable" que valida si dos elementos son compatibles. Por
ejemplo:

def casable(i,j):
  return i[2] != j[2] and -80 <= i[1]-j[1] <= 80

Definimos dos secuencias:

# ids disponibles para chequear
disponibles = {x[0] for x in Todo}

# pares a chequear
from itertools import combinations
pares = [(i,j) for (i,j) in combinations(Todo,2) if casable(i,j)]


# procesamos la lista de pares:

for (i,j) in pares:
    if {i[0],j[0]} <= disponibles:
        Guarda_par(i[0],j[0])
        disponibles -= {i[0],j[0]}  # dejan de estar disponibles


Así obtendrás una solución de la múltiples posibles. Con toda probabilidad,
no será la mejor.



> El 22 de septiembre de 2014, 22:44, Peon Blanco <peonblanco83 en gmail.com>
> escribió:
>
> Agrandes rasgos leo registro por registro y voy comparando.
>> si me pueden dar una idea para que esto sea aleatorio se los agradecería.
>>
>> BASE DE DATOS SQLITE
>>
>> ID     PESO PERTENECE  STATUS
>> 1 2000 dueño    NO
>> 2 2100 dueño  NO
>> 3 2220 dueño NO
>> 4 2000 dueño1 NO
>> 5 2100 dueño1 NO
>> 6 2200 dueño1 NO
>> 7 2200 dueño2 NO
>> 8 2080 dueño2 NO
>> 9 2180 dueño2 NO
>>
>> Codigo.
>>
>> Todo=Casatodo() #funcio para traer todos los datos de sqlite filtrando el
>> status como "NO"
>> for x in Todo: #Lo paso el for para leer 1 x 1
>>     for i in Todo: #otro for para hacer las comparaciones
>>         if x[0] == i[0]: #Valida si es el mismo registro, si es igual
>> solo pasamos
>>             continue
>>         else:
>>             if x[2] == i[2]: #Valida si es del mismo partido, si es igual
>> solo pasamos
>>                 continue
>>             else:
>>                 mas80=int(x[1])+80 #Tolerancia de peso mayor
>>                 menos80=int(x[1])-80 #Tolerancia de peso menor
>>                 if int(i[1]) > menos80 and int(i[1]) < mas80: # Valida
>> que se cumpla la condición  de diferencia de pero ya sea mayor o menor
>>                     Guarda_par(x[0],i[0]) #Guardo en una tabla diferente
>> los pares
>>                     Actualizacasa(x[0]) # Solo agrego un "SI" al estatus
>>                     Actualizacasa(i[0]) # Solo agrego un "SI" al estatus
>>                     TODO=CASATODOS() #vuelvo a leer los datos para seguir
>> comparando
>>                     break
>>
>>
>> este código me regresa los siguientes pares.
>>
>> 1 4  --  Bien
>> 2 5  --  Bien
>> 3 6  --  Bien
>> 5 8  --  Mal  5 repetido
>> 6 7  --  Mal 6 repetido
>>
>>
>>
>>
>> El 22 de septiembre de 2014, 15:32, Francisco Palm <
>> francisco.palm en gmail.com> escribió:
>>
>>
>>> Para una tabla de esas características, aplicar filtros (que obviamente
>>> tienes que diseñar el algoritmo según tus necesidades, no parece
>>> complicado), un módulo interesante es Pandas http://pandas.pydata.org/
>>>
>>> Saludos
>>>
>>> F. Palm
>>>
>>>
>>> 2014-09-22 14:31 GMT-04:30 Peon Blanco <peonblanco83 en gmail.com>:
>>>
>>>> Hola buenas tardes expongo el siguiente problema ya que no se que
>>>> modulo usar.
>>>>
>>>> tengo algo como esto
>>>>
>>>> ID      Peso   Pertenece
>>>> 76     1800     1
>>>> 77     1860     2
>>>> 78     1850     1
>>>> 79     1910     3
>>>>
>>>> necesito algo que valide estos datos haciendo una comparación.
>>>>
>>>> que el peso no sobrepase 80 gr  y que no pertenezca al mismo(Pertenece).
>>>>
>>>> el ejemplo anterior debería de queda así.
>>>> ID     ID
>>>> 76 -  77  - se cumple la regla de los 80 gr  (con el ID 78 se cumple la
>>>> regla de los gramos pero pertenecen al mismo (Pertenece))
>>>> 78 -  79
>>>>
>>>> me pueden orientar en que modulo usar.
>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>
>>>
>>> --
>>> --------------------------------------
>>> fpalm en mapologo.org.ve
>>> francisco.palm en gmail.com
>>>
>>> cel: +58 +424 7228252
>>> tel: +58 +274 6352001
>>>
>>> ----
>>> Debemos ser libres, no para hacer lo que nos plazca, sino libres para
>>> comprender muy profundamente nuestros propios instintos e impulsos. K
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140926/e2b1b8f8/attachment.html>


Más información sobre la lista de distribución Python-es