Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ChicoMaravilla en 5 Abril 2011, 16:38 pm



Título: [PYTHON] Contador de palabras
Publicado por: ChicoMaravilla en 5 Abril 2011, 16:38 pm
Buenos días a todos, acudo al foro porque hay un problema que no lo puedo resolver no se por que pero me resulta complicado pues miren el ejercicio es este:

►Diseña una función que, dada una lista de cadenas, devuelva la cadena más larga. Si dos o más cadenas miden lo mismo y son las más largas, la función devolverá una cualquiera de ellas. (Ejemplo: dada la lista [’Pepe’, ’Juan’, ’María’, ’Ana’], la función devolver´a la cadena  ’María’.)

yo lo que hice fue esto:

Código
  1. def palabras():
  2.    lista=[""]
  3.    palabra="a"
  4.    while palabra!="":
  5.        palabra=raw_input("Nombres...")
  6.        lista.append(palabra)
  7.    total=len(lista)
  8.    for i in lista:
  9.        n=len(i)
  10.        if n>len[i-1]:
  11.            print i
  12.  
  13. palabras()

el error es aquí:

Código
  1. if n>len[i-1]:

pues así lo razone yo pues no se como hacer para que se fije en las anteriores, me aparece que no se puede operar una int con str pero mi pregunta es como ir recorriendo la lista averiguando la posición de todas las palabras de una lista, pues yo ya lo se como hacer pero no en un range

sepan comprenderme, hace como medio año deje de estudiarlo y ahora quiero retomar y pues me olvide algunas cosas :/.


Título: Re: [PYTHON] Contador de palabras
Publicado por: ChicoMaravilla en 5 Abril 2011, 16:56 pm
ya lo resolvi, buscando horas en la web, encontré el comando que me pudo dar la solución (aunque no creo que sea esta en verdad):

Código
  1. def palabras():
  2.    lista=[""]
  3.    palabra="a"
  4.    while palabra!="":
  5.        palabra=raw_input("Nombres...")
  6.        lista.append(palabra)
  7.    print max(lista)
  8. palabras()

me parece extremadamente raro que aparezca
Código
  1. max
siendo algo que no lo eh dado en el libro todavía supongo que hay otra solución más complicada


Título: Re: [PYTHON] Contador de palabras
Publicado por: Novlucker en 5 Abril 2011, 20:47 pm
Ten en cuenta que te pide diseñar una función que "dada una lista de cadenas", así que debes de suponer que la función recibe una lista como parametro, y el llenado de la lista viene dado en otro lugar.

Código
  1. def palabras(lista):
  2. r = ''
  3. for i in lista:
  4. if len(i)>len(r):
  5. r = i
  6. return r

Saludos