<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Muchas gracias vitiman te he entendido, por casualidad habia visto el modulo itertools ayer, pero no lo habia entendido bien como me podia ayudar.<br>Muchas gracias nuevamente a todos por sus rapidas respuestas y ayuda. <br><br>Disculpen el incomodo :).<br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">From: vitiman@gmail.com<br>Date: Wed, 13 Mar 2013 11:05:35 +0100<br>To: python-es@python.org<br>Subject: Re: [Python-es] Duda sobre listas de listas<br><br><div dir="ltr">Hola Rafael,<div><br></div><div>Si no he entendido mal la idea es eliminar las ocurrencias de una lista de listas, no?</div><div><br></div><div>A ver si esto te sirve</div><div><br></div><div>
>>> import itertools</div><div>>>> links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']]</div>
<div>>>> chain = itertools.chain(*links)</div><div>>>> the_list = list(chain)</div><div><div>[u'00:00:00:1b:11:b4:16:80,1',</div><div> u'00:00:00:02:44:a9:b5:34,1',</div>
<div> u'00:00:00:02:44:a9:b5:34,1',</div><div> u'00:00:00:1b:11:b4:16:80,1']</div><div>>>> set(the_list)</div><div>set([u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'])<br>
</div><div><br></div><div>También lo puedes hacer la lista que recibes en modo "flattened":</div><div><a href="http://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists-in-python" target="_blank">http://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists-in-python</a><br>
</div><div><br></div><div>Échale un ojo al módulo itertools que te salva la vida en muchas ocasiones.</div><div><br></div><div>Saludos.</div></div><div><br></div><div><br></div><div><br></div>
</div><div class="ecxgmail_extra"><br><br><div class="ecxgmail_quote">El 13 de marzo de 2013 10:36, Rafael Gomes <span dir="ltr"><<a href="mailto:rggg88@hotmail.com" target="_blank">rggg88@hotmail.com</a>></span> escribió:<br>
<blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex;">
<div><div dir="ltr">Buenos Dias amigos,<br>Como estan? <br>Espero que bien. <br><br>Disculpen molestar, pero yo soy nuevo en el lenguaje python y luego de hacer unos tutoriales que encontre en internet asi como otras informaciones que he visto aqui en la lista he tratado avanzar y ir buscar informaciones que se encuentran en la mini red utilizada donde trabajo.<br>
<br>Es asi yo hago un pedido curl para el servidor y obtengo la lista de maquinas que estan conectadas a mi red en uno de los siguientes formatos:<br><br>[[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]]<br>
<br>Solo que la informacion viene en una lista de lista y viene repetida pero en orden contrária y queria eliminar la repeticion. Ya lei sobre los set pero no da para utilizar en una lista de lista que no es hashable. Ya trate algunas experimentaciones con for e if, como por ejemplo: <br>
<br>a=[[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]]<br>nova_l=[]<br><br>for elem in a:<br> if elem not in nova_l:<br>
nova_l.append(elem)<br> k = nova_l<br> print a<br><br>Pero no consigo quedar solo con los dos primeros o los segundos valores.<br><br>Otra forma que pensei para recebir la informacion fue esta: <br>
[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']]<br><br>Y trate de utilizar este codigo a ver si daba:<br><br>import string<br>
<br>switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']]<br><br>links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']]<br>
port_link_list=[]<br>t=len(links)<br>for i in range(t):<br> for elem in links[i]:<br> if elem.split(',')[0]==switch[i]:<br> port = elem.split(',')[1]<br> if port not in port_link_list:<br>
port_link_list.append(elem.split(',')[1])<br>print port_link_list<br><br>Mi idea es conseguir que la nueva lista quede de la siguiente forma: <br><br>[[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]]<br>
<br>Si me pudiesen ayudar y decir que estoy haciendo mal, disculpen mi ignorancia.<br><br>Ya ahora tengo otra duda, si tambien me pueden ayudar. <br><br>Suponiendo que quedo con la informacion de la manera anterior, o sea como quiero. Quiero filtrar los valores que tengo en una lista en relacion a esta. La otra lista tiene el siguiente formato:<br>
<br>lista1⁼[[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]]<br>lista2=[[u'00:00:00:1b:11:b4:16:80,65534', u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80,1', u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34,65534', u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34,1', u'00:02:44:a9:b5:34']]<br>
<br>Mi idea aqui es hacer dos for en que comparo la primera posicion de la lista 1 con la primera posicion de la lista 2 asi como la segunda coluna de la lista 1 de cada linea con la segunda coluna de la lista 2 y hago el filtraje. Queria saber si estoy pensando bien o no.<br>
<br>Muchas gracias por toda vuestra ayuda. <br>Disculpen el incomodo. <br><br>Saludos, <br>Rafael Gomes<br> </div></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><br clear="all"><div><br></div>-- <br>Victoriano Navarro Aguilar - (<a href="mailto:vitiman@gmail.com">vitiman@gmail.com</a>)
</div>
<br>_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/</div> </div></body>
</html>