¿Y algo así?
In [12]: s = set()
In [13]: 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]]
In [14]: s = set()
In [15]: for el in a:
s.add(tuple(el[0:2]))
s.add(tuple(el[2:4]))
....:
In [16]: print s
set([(u'00:00:00:1b:11:b4:16:80', 1), (u'00:00:00:02:44:a9:b5:34', 1)])
El 13/03/13 10:36, Rafael Gomes escribió:
Buenos Dias amigos,
Como estan?
Espero que bien.
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.
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:
[[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]]
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:
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]]
nova_l=[]
for elem in a:
if elem not in nova_l:
nova_l.append(elem)
k = nova_l
print a
Pero no consigo quedar solo con los dos primeros o los segundos valores.
Otra forma que pensei para recebir la informacion fue esta:
[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']]
Y trate de utilizar este codigo a ver si daba:
import string
switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']]
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']]
port_link_list=[]
t=len(links)
for i in range(t):
for elem in links[i]:
if elem.split(',')[0]==switch[i]:
port = elem.split(',')[1]
if port not in port_link_list:
port_link_list.append(elem.split(',')[1])
print port_link_list
Mi idea es conseguir que la nueva lista quede de la siguiente forma:
[[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]]
Si me pudiesen ayudar y decir que estoy haciendo mal, disculpen mi
ignorancia.
Ya ahora tengo otra duda, si tambien me pueden ayudar.
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:
lista1^(=)[[u'00:00:00:02:44:a9:b5:34',
1],[u'00:00:00:1b:11:b4:16:80', 1]]
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']]
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.
Muchas gracias por toda vuestra ayuda.
Disculpen el incomodo.
Saludos,
Rafael Gomes
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/