elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] Crear una lista a partir de una cadena
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Crear una lista a partir de una cadena  (Leído 13,092 veces)
Canariolp21

Desconectado Desconectado

Mensajes: 12



Ver Perfil
[Python] Crear una lista a partir de una cadena
« en: 15 Noviembre 2010, 02:30 am »

Buenas Noches a todos:

Mi problema es el siguiente:

Necesito crear una lista a partir de una cadena, ya que estoy realizando un ejercicio del manual de python que hay por aqui.

de momento tengo esto:
Código:
cadena = raw_input('Escribe una cadena: ')
lista=[cadena]
print lista

el problema reside en que me sale esto:

['La casa de la pradera']

y debería salirme esto:

['La' ,'casa', 'de', 'la', 'pradera']

ya que despues voy a recorrer la lista y voy a mirar si hay alguna palabra que tenga de tamaño el que le introduciré por teclado declarando despues de la cadena una variable más.

Un saludo y espero que alguien me ilumine.



En línea

Canariolp21

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: [Python] Crear una lista a partir de una cadena
« Respuesta #1 en: 15 Noviembre 2010, 03:03 am »

Bueno, me contesto yo mismo:
Código:
# Importar librerias del sistema
import os
# Declarar variables e inicializarlas
sistema = (os.name)
palabras=0   
if sistema=="nt":
    os.system("cls")
else:
    os.system("clear")

#Introduccion de una cadena
cadena = raw_input('Escribe una cadena: ')
k = raw_input('Escribe un numero: ')
lista= cadena.split()
for i in range(len(lista)):
    #print len(lista[i])
    if len(lista[i])==k:
         palabras+=1

print palabras

El problema que tengo ahora es que no soy capaz de que me funcione que me sume cuantas palabras son iguales a las introducidas por la variable k.

Si descomentamos la linea (print len(lista)) vemos que nos imprime el tamaño de cada una de las palabras, pero no sé porqué el if no lo hace de forma correcta y no suma el contador.

¿Alguien me puede echar una mano?

Gracias


En línea

.:WindHack:.

Desconectado Desconectado

Mensajes: 167

Prisionero de mi propia mente...


Ver Perfil WWW
Re: [Python] Crear una lista a partir de una cadena
« Respuesta #2 en: 15 Noviembre 2010, 04:55 am »

El error es prácticamente una tontería. Está en que, pides la variable K como una cadena (str).

Código
  1. #Introduccion de una cadena
  2. cadena = raw_input('Escribe una cadena: ')
  3. k = raw_input('Escribe un numero: ') # k = input('')
  4. lista= cadena.split()
  5. for i in range(len(lista)):
  6.    #print len(lista[i])
  7.    if len(lista[i])==k:
  8.         palabras+=1

En todo caso, podrías hacer un poco más limpio el código. Con el bucle for-in puedes recorrer directamente cada elemento de la lista.

Por ejemplo:
Código
  1. sString = raw_input('Escribe una cadena: ')
  2. List = sString.split()
  3. K = input('Escribe un numero: ')
  4. sWords = 0
  5.  
  6. for i in List:
  7.    if len(i) == K:
  8. sWords += 1



Saludos.,
En línea

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."
Canariolp21

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: [Python] Crear una lista a partir de una cadena
« Respuesta #3 en: 15 Noviembre 2010, 20:58 pm »

Gracias WindHack, es verdad era una tontería eso me pasa por querer ir a dormir, ya que 3 horas después me levanté para ir a currar.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines