Por que no usas la función <b>map</b> ? precisamente hace eso, "compara" 2 listas y retorna según una condición, ejemplo:<div><br></div><div>def Compara(x, y):</div><div> if x > 100:</div><div> return x</div>
<div><br></div><div>l1 = (1,2,3,4,5,6, 100, 101)</div><div>l2 = (1,2,3,0,0,6, 99, 100)<br><div><br></div><div>filtro = map(Compara, l1, l2)</div><div><br></div><div>print filtro</div><div>[None, None, None, None, None, None, None, 101]</div>
<div><br></div><div>Un saludo</div><div><br><br><div class="gmail_quote">El 17 de enero de 2013 10:46, Carlos Agulló Calvo <span dir="ltr"><<a href="mailto:cm.agullo@gmail.com" target="_blank">cm.agullo@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">hola<div><br></div><div>Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que están en un .txt desde entonces, he conseguido varios progresos, pero ahora me he quedado estancado en un punto del que no se salir.</div>
<div><br></div><div>Mi duda consiste en lo siguiente: </div><div><br></div><div>tengo los datos de la siguiente manera:</div><div><br></div><div><div><font color="#003300">"0303201";1/4/2009 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0</font></div>
<div><font color="#003300">"0303201";1/4/2009 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0</font></div><div>(Es un extracto)</div></div><div><br></div><div>y querría poder compararlos entre las filas para aplicar una serie de filtros y en función de si cumplen o no los filtros que vayan a archivos separados.</div>
<div><br></div><div>He pensado que debería hacer que cada fila fuera una lista y por eso he hecho este programa:</div><div><div><br></div><div><font color="#000099">leer=open("datos.txt","r")</font></div>
<div><font color="#000099">lista=open("datos_lista.txt","a")</font></div><div><font color="#000099">validos=open("est_0303201_VAL.txt","a")</font></div><div><font color="#000099">no_validos=open("est_0303201_ERR.txt","a")</font></div>
<div><font color="#000099"><br></font></div><div><font color="#000099">for i in leer.readlines(): #con esto lee cada línea</font></div><div><font color="#000099"> datos=i.strip().split(";") #guarda cada linea como una lista</font></div>
<div><font color="#000099"> lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) las lineas como listas [,]</font></div><div><font color="#000099"> </font></div><div><font color="#000099"><br>
</font></div><div><font color="#000099"><br></font></div><div><font color="#000099">leer.close()</font></div><div><font color="#000099">validos.close()</font></div></div><div><br></div><div>que me crea 2 archivos vacíos y uno con los datos en forma de listas así:</div>
<div><br></div><div><div><font color="#003300">['"0303201"', '1/4/2005 0:01:00', <b>'2', '0'</b>, '0', '0', '0', '143', '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', '-127', '0']</font></div>
<div><font color="#003300">['"0303201"', '1/4/2005 0:02:00', <b>'0', '100'</b>, '0', '0', '0', '106', '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', '-127', '0']</font></div>
</div><div>(es un extracto)</div><div><br></div><div>El problema es que no sé cómo poner los filtros.</div><div><br></div><div>Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna en negrita 2 es 100 se considere error.</div>
<div><br></div><div>o que en el siguiente ejemplo:</div><div><br></div><div><div><div><font color="#003300">['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', <b>'143'</b>, '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', '-127', '0']</font></div>
<div><font color="#003300">['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', <b>'106'</b>, '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', '-127', '0']</font></div>
</div><div>(es un extracto)</div></div><div><br></div><div>si en la fila 2 la columna en negrita es menor que en la fila 1 también de error.</div><div><br></div><div>(luego pondría yo que me diga el filtro que no cumple, pero eso creo que lo sé hacer).</div>
<div><br></div><div>¿Podríais ayudarme?</div><div><br></div><div>Muchas gracias</div><div><br></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div></div>