tratamiento de listas
Joaquin Jose del Cerro Murciano
jjdelcerro en cenoclap.es
Vie Abr 23 07:38:19 CEST 2004
El Jueves, 22 de Abril de 2004 11:55, David Sanchez Perez escribió:
> Buenas listeros.
> Mi pregunta es la siguiente. Supongamos que tengo la lista que aparece a
> continuacion:
>
> ['(\\HasNoChildren) "." "INBOX.Trash"','(\\HasNoChildren) "."
> "INBOX.Sent"', '(\\HasNoChildren) "."
> "INBOX.prueba_dvd.anidada2"','(\\HasChildren) "."
> "INBOX.prueba_dvd"','(\\Unmarked \\HasChildren) "." "INBOX"']
>
> Pues bien, yo de esa lista, quiero un array que contenga cada uno de los
> buzones, es decir INBOX.Trash, INBOX.Sent, ...., INBOX*.
> La idea seria hacer como un split con '"' como separador, y no tener en
> cuenta la cadena "."
> La cosa es que no se como hacerlo.
> Otra manera que se me ha ocurrido es hacer un cast a esa lista para pasarlo
> a tipo cadena (no se todavia como se haria tampoco), y una vez que fuese
> una cadena, hacer:
> [s for s in cad.split('"') if s.startswith('IN.')]
> suponiendo que en 'cad' tenga la cadena
>
>
> Un saludo y gracias
> DvD
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
Hola,
asi sin complicarme mucho la vida lo primero que se me ocurre podria ser algo
como:
import re
lista=[
'(\\HasNoChildren) "." "INBOX.Trash"',
'(\\HasNoChildren) "." "INBOX.Sent"',
'(\\HasNoChildren) "." "INBOX.prueba_dvd.anidada2"',
'(\\HasChildren) "." "INBOX.prueba_dvd"',
'(\\Unmarked \\HasChildren) "." "INBOX"'
]
lista2 = list()
for s in lista:
lista2.append( re.sub("^.*INBOX","INBOX",s)[:-1] )
print lista2
Si te vale, ahi lo tienes.
Un saludo
Joaquin.
Más información sobre la lista de distribución Python-es