Hola de nuevo, ahora tengo una duda relacionada con la pregunta de mañana que
lo queria guardar de forma diferente, ahora la informacion la tengo en este
genero:
switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']]
puertos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']}
mi=[[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', 2, u'76:45:87:ba:d7:5a'],
[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', 2, u'0e:2f:31:21:82:ee'],
[u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'],
[u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']]
lista_hosts={}
host=[]
for sw in switch:
for elem in mi:
if (str(elem[0])==sw):
lista_hosts[sw]=[]
if str(elem[1]) not in (['65534'] + puertos[elem[0]]):
aux=[elem[2], elem[1]]
host.append(aux)
if host not in lista_hosts[sw]:
lista_hosts[sw].append(host)
print lista_hosts
Mi idea es tener un diccionario para cada switch associando a cada los hosts
respectivos, es decir, algo asi:
{u'00:00:00:1b:11:b4:16:80,1': [[[u'76:45:87:ba:d7:5a', 2],
u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b',
3]]}
Solo que el me devuelve la lista vacia y no se que estoy haciendo mal, pienso
que el problema es en el primer if pero no se que estoy haciendo mal.
Otras cosas q experimente:
Yo lo maximo de bueno que consegui fue esto:
{u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b',
3], [u'76:45:87:ba:d7:5a', 2]} {u'00:00:00:1b:11:b4:16:80,1':[]}
La otra cosa que hice fue esto:
portos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']}
mi=[[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', 2, u'76:45:87:ba:d7:5a'],
[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', 2, u'0e:2f:31:21:82:ee'],
[u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'],
[u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']]
lista_hosts=[]
host=[]
for elem in mi:
if str(elem[1]) not in (['65534'] + portos[elem[0]]):
aux=[elem[2], elem[1]]
host.append(aux)
if host not in lista_hosts:
lista_hosts.append(host)
print lista_hosts
que solo me da los hosts.
Pero cuando entro con los switches no consigo :/.
Si me pueden dar alguna pista o asi agradecia.
La otra duda es sobre como puedo hacer matrizes en python? Yo utilize este
metodo pero no se si es el mas correcto
a=0
a=[a]*tamanho
matriz_adj=[a]*tamanho
print matriz_adj
La matriz es para tratar de hacer la matriz adjacente de mi red de casa.
Muchas gracias mas una vez, disculpen mi ignorancia.
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/