Python - Como comparar 3 arreglos python

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Como comparar 3 arreglos python

Publicado por zahm (8 intervenciones) el 04/03/2019 18:22:13
Hola, tengo dos arreglos en los cuales en 2 de ellos tengo horas de 6:30 AM a 17 PM, todas van separadas por hora, ejemplo
mi primer arreglo se llama FIF y contiene las horas por horas separadas (todas van de 1 hora) y el segundo se llama FEF y tiene la fecha de termino de FIF, ejemplo: FIF empieza a las 6:30 AM y FEF termina a las 7:00 AM, y así sucesivamente con las demás horas hasta que FEF llegue a las 17 PM ...
Ahora, mi tercer arreglo son horas que no están definidas y vienen de mi BD y tengo que comparar que entren en el rango de FIF y FEF !

tengo algo así (les anexo también mi FEF Y FIF)

1
2
3
DateFIF = ['06:30:00','07:01:00' ,'08:01:00', '09:01:00','10:01:00','10:31:00','11:31:00','12:01:00','13:01:00','14:01:00','15:01:00','16:01:00']
DateFEF = ['07:00:00','08:00:00', '09:00:00','10:00:00','10:30:00','11:30:00','12:00:00','13:00:00','14:00:00','15:00:00','16:00:00','17:00:00']
FeIn = []

y aquí mi comparanción
1
if fif <= FeIn <= fef:

y no me funciona, ya le agregre el and y tampoco.
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
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como comparar 3 arreglos python

Publicado por tincopasan (1082 intervenciones) el 05/03/2019 05:43:00
la verdad es que nos sos muy claro, así que te muestro algo:
1
2
3
4
5
6
7
8
9
10
11
12
13
DateFIF = ['06:30:00','07:01:00' ,'08:01:00', '09:01:00','10:01:00','10:31:00','11:31:00','12:01:00','13:01:00','14:01:00','15:01:00','16:01:00']
DateFEF = ['07:00:00','08:00:00', '09:00:00','10:00:00','10:30:00','11:30:00','12:00:00','13:00:00','14:00:00','15:00:00','16:00:00','17:00:00']
 
FeIn = ["07:10:00"] #puse una hora que este, aunque no los minutos, supongo que con eso te referís a rango
encontrado = 0
for x in FeIn:      #es una lista,así que recorremos los elementos, en este caso es solo uno
    x = x[0:2]        #como la hora debe coincidir leemos solo los dos primeros valores de la cadena 
    for a in DateFIF: #ahora recorremos una de las listas con los valores que hay
        a = a[0:2]         #como antes solo quiero los dos primeros valores 
        if a == x:           #si alguno concuerda en la hora 
            encontrado+=1
if encontrado > 0:
    print("hora en rango en DateFIF ")  #nos dice que algún valor está en la hora            

para la otra lista es básicamente lo mismo, si es otra cosa lo que querés intenta ser más claro en lo que buscas y en las aclaraciones, por ejemplo rango es muy amplio.
Saludos.
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
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Como comparar 3 arreglos python

Publicado por zahm (8 intervenciones) el 05/03/2019 16:38:40
Si, algo similar, perdón por no ser tan explicito; pero lo que tengo que hacer es un reporte y graficarlo
Tengo una hora con horas así:
6:30-7:00, 7:00-8:00, 8:00-9:00, 9:00-10:00,10:00-10:30,10:30-11:30,11:30-12:00,12:00-13:00,13:00-14:00,14:00-15:00,15:00-16:00,16:00-17:00.
Entonces cree dos arreglos ()DateFIF, DateFEF) donde FIF tiene las primeras horas (de cada hora) y FEF tiene la hora final de cada una.
tengo una consulta el cual debe de traerme la hora en la que se registro algo y la cantidad que eso lo hago con esta linea

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
processIn = sWarehouseMovementProcessIn.objects.filter(Q(DateTimeMovement__date=dateNow)).values('DateTimeMovement','JobPlannedID__PlannedQuantity')/code]
 
donde mi FeIn se llena con lo que tiene la consulta, para que se recorra entre FIF y FEF y este entre en cierta posición.
ahora bien, ya me sale todo (tambien mi pregunta anterior) pero tengo otro conflicto, que donde no entre ninguna hora me mande en la posición un '0' y este es mi siguiente código, ya que me lo marca pero me salen varios y deben de salirme 12 posiciones de acuerdo a las posiciones de mi arreglo (ya sea FIF o FEF, ambos tienen 12) , para poder graficarlo.
 
[code]for a in range(0,len(processIn)):
    temp = processIn[a]['DateTimeMovement']
    dato = processIn[a]['JobPlannedID__PlannedQuantity']
    PlanStart.append(temp)
    pIn.append(dato)
for tPl in range(0,len(PlanStart)):
    fecha = PlanStart[tPl].strftime("%Y-%m-%d %H:%M:%S")
    fechaInicio = PlanStart[tPl].strftime("%H:%M:%S")
    FeIn.append(fechaInicio)
for fif , fef in zip(DateFIF, DateFEF):
        for i in range(0,len(FeIn)):
            DateS = FeIn[i]
            DaS.append(DateS)
            if DaS[i] == None:
                print("no hay registro")
            else:
                # import pdb; pdb.set_trace()
                if fif <= DaS[i] <= fef:
                    # print (fif, DaS[i],pIn[i], fef)
                    fin.append([DaS[i],pIn[i]])
                    print fin
                    # import pdb; pdb.set_trace()  
                else:
                    fin.append(0)


espero haya sido más explicito.
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
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Como comparar 3 arreglos python

Publicado por zahm (8 intervenciones) el 05/03/2019 18:15:07
Ya se resolvió, ¡Gracias!
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
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como comparar 3 arreglos python

Publicado por Daniel (111 intervenciones) el 05/03/2019 09:20:13
Hola ,

La forma más fácil de comprobar si un elemento existe en un vector en Python es mediante el operador in. Puedes comprobar si un elemento se encuentra dentro de un vector de la siguiente forma

1
2
3
4
5
DateFIF = ['06:30:00','07:01:00' ,'08:01:00', '09:01:00','10:01:00','10:31:00','11:31:00','12:01:00','13:01:00','14:01:00','15:01:00','16:01:00']
DateFEF = ['07:00:00','08:00:00', '09:00:00','10:00:00','10:30:00','11:30:00','12:00:00','13:00:00','14:00:00','15:00:00','16:00:00','17:00:00']
 
'07:00:00' in DateFIF # False
'07:01:00' in DateFIF # True

Alternativamente, si necesitas comprobar un si los elementos de un vector se encuentran en otros puede simplemente iterar sobre ellos.

1
2
FeIn = ["07:00:00", '09:01:00']
[x in DateFIF for x in FeIn] # [False, True]

Saludos,
Daniel Rodríguez.
Analytics Lane
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
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Como comparar 3 arreglos python

Publicado por zahm (8 intervenciones) el 05/03/2019 16:41:30
Si, es lo que quiero que FeIn entrara en los rangos de acuerdo a FIF y FEF , lo hice de otra manera, pero ahora tengo otro problema
si no es molestia revisar mi comentario de arriba, por favor!
¡Gracias!
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
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Como comparar 3 arreglos python

Publicado por zahm (8 intervenciones) el 05/03/2019 18:16:07
Ya se resolvió, ¡Gracias!
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