[Python-es] Duda sobre listas de listas

Rafael Gomes rggg88 en hotmail.com
Mie Mar 13 12:17:59 CET 2013


Si disculpa, pense más rápido de lo que escrevi y pense que ya habia referido la información.
La información de mi lista es el primer numero me dá la dirección mac de las máquinas conectadas a la red, y el segundo es el puerto por la cual ligan. Por eso el valor 1 puede variar de acuerdo a como tenga la red.

Resumiendo mi lista tiene el siguiente formato:
l1=[['src-addr', 'src-port','dst-addr', 'dst-port']]

La solucion que dijiste fue la primera que tuve, pero el problema es que ni siempre va ser 1.

Muchas gracias mas una vez.

Date: Wed, 13 Mar 2013 11:21:22 +0100
From: kikocorreoso en gmail.com
To: python-es en python.org
Subject: Re: [Python-es] Duda sobre listas de listas



El 13 de marzo de 2013 11:10, Rafael Gomes <rggg88 en hotmail.com> escribió:




Ok gracias entiendo, por casualidad me habia dado cuenta de eso de no aceder a los elementos sino a las listas a poco, iba a avisar ahora cuando recebi tu respuesta.
Lo hice asi: 
l1=[[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']]

l2=[]

l=len(l1)-1
c=len(l1[0])-1

for i in range(l):
        for j in range(c):
                if l1[i][j] not in l2:
                        l2.append(l1[i][j])
print l2

Solo que tengo un problema/ duda. 

Mi l2 queda asi: 
[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80'] y yo queria que el uno se repetisiese despues del u'00:00:00:1b:11:b4:16:80' como en la lista original o sea que el l2 quedase asi:

l2=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1']. Solo que no se como puedo hacer esto de forma generica.

Depende de tu contexto, ¿ese '1', siempre es '1'? o ¿ese '1' puede ser cualquier otra cosa que depende del elemento anterior de la lista? o ¿ese '1' es independiente de cualquier otro elemento?,...


Define un poco mejor la pregunta y te podremos aportar una respuesta más detallada a tu problema. Si ese '1' se repite siempre como muestras en tu ejemplo una solución fea podría ser:

l1=[[u'00:00:00:02:44:a9:b5:300:00:00:02:44:a9:b5:344', '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']]
l2=[]


l=len(l1)-1
c=len(l1[0])-1


for i in range(l):
        for j in range(c):
                if l1[i][j] not in l2 and len(l1[i][j]) > 1:
                        l2.append(l1[i][j])
             l2.append('1')
print l2

_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/ 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130313/3441545e/attachment.html>


Más información sobre la lista de distribución Python-es