Foros del Web » Programando para Internet » Python »

Pasar una cadena a una lista

Estas en el tema de Pasar una cadena a una lista en el foro de Python en Foros del Web. Hola compañeros, estoy utilizando BeatifulSoap para parsear una web y hasta ahí todo bien. Donde me he quedado un poco atascado es a la hora ...
  #1 (permalink)  
Antiguo 11/09/2013, 05:14
Avatar de wolvelopez  
Fecha de Ingreso: junio-2008
Mensajes: 86
Antigüedad: 16 años, 6 meses
Puntos: 0
Pasar una cadena a una lista

Hola compañeros, estoy utilizando BeatifulSoap para parsear una web y hasta ahí todo bien.
Donde me he quedado un poco atascado es a la hora de meter una cadena dentro de un list, aunqu no se si es la mejor opcion. El caso es que dentro de una cadena tengo este tipo de valores, con sus espacios y saltos de linea:
DL
Andres Martinez
2
852.000
4

5
8
Mi intencion es crear un lista con estos valores, pero cada cadena debe ser un objeto de la lista:(Así es como lo he pensado)
[['DL','Andres Martinez',2,852.000,4,5]['MD','Antonio Saez',8,852.320,4,8]]
Dentro de los saltos de linea de la cadena, hay algunos en blanco y quiero eliminarlos...¿Me pasais algo de info sobre como hacer esto?
Muchas gracias
__________________
# "El software es un gas: se expande hasta llenar su contenedor"
-- Nathan Myhrvold
  #2 (permalink)  
Antiguo 11/09/2013, 08:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Pasar una cadena a una lista

Puedes usar

Código Python:
Ver original
  1. my_string.split('\n') # Y remover las cadenas vacias

O usar
Código Python:
Ver original
  1. re.split('\n+', my_string)
  #3 (permalink)  
Antiguo 11/09/2013, 08:23
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 11 meses
Puntos: 35
Respuesta: Pasar una cadena a una lista

Con la función str.strip podés eliminar los espacios en blanco al comienzo y al final de la cadena. Con list.split podés separar los valores en una lista de acuerdo a un delimitador.

Código Python:
Ver original
  1. s = """    DL
  2.    Andres Martinez
  3.    2
  4.    852.000
  5.    4
  6.    
  7.    5
  8.    8"""
  9.  
  10. L = []
  11. for value in s.split("\n"):
  12.     value = value.strip()
  13.     if value:
  14.         L.append(value)
  15.  
  16. print L

No entendí muy bien esto de [['DL','Andres Martinez',2,852.000,4,5]['MD','Antonio Saez',8,852.320,4,8]]. Espero que te sirva.



P.D: No vi tu post razpeitia
  #4 (permalink)  
Antiguo 17/09/2013, 05:33
Avatar de wolvelopez  
Fecha de Ingreso: junio-2008
Mensajes: 86
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Pasar una cadena a una lista

Perfecto.
Muchas gracias compañeros.
__________________
# "El software es un gas: se expande hasta llenar su contenedor"
-- Nathan Myhrvold

Etiquetas: cadenas, concatenar, listas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:53.