[PYTHON] Contador de palabras

Iniciado por ChicoMaravilla, 5 Abril 2011, 16:38 PM

0 Miembros y 1 Visitante están viendo este tema.

ChicoMaravilla

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 (python) [Seleccionar]
def palabras():
    lista=[""]
    palabra="a"
    while palabra!="":
        palabra=raw_input("Nombres...")
        lista.append(palabra)
    total=len(lista)
    for i in lista:
        n=len(i)
        if n>len[i-1]:
            print i

palabras()


el error es aquí:

Código (python) [Seleccionar]
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 :/.

ChicoMaravilla

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 (python) [Seleccionar]
def palabras():
   lista=[""]
   palabra="a"
   while palabra!="":
       palabra=raw_input("Nombres...")
       lista.append(palabra)
   print max(lista)
palabras()


me parece extremadamente raro que aparezca
Código (python) [Seleccionar]
max siendo algo que no lo eh dado en el libro todavía supongo que hay otra solución más complicada

Novlucker

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 (python) [Seleccionar]
def palabras(lista):
r = ''
for i in lista:
if len(i)>len(r):
r = i
return r


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein