Python - Eliminar palabras de la lista

 
Vista:
Imágen de perfil de lalo

Eliminar palabras de la lista

Publicado por lalo (15 intervenciones) el 26/09/2022 06:51:03
Hola buen día,

¿Cómo podría separar las palabras en una lista?
Por ejemplo las palabras de la lista [Robot, perro, gato, carro, col]
de la lista solamente devolver las palabras con más letras

['Robot', 'perro', 'carro'] porque las 3 tienen 5 letras.

¿Se puede?
¿Cómo podría "contar" el número de letras?
Anexo el código que llevo:

1
2
3
4
5
6
7
8
9
10
11
12
13
input_string = input('Escribe palabras \
separadas por espacio para crear una lista\n')
my_list = input_string.split()
my_list.sort()
print(my_list)
 
list = []
for i in my_list:
    list.append(len(i))
list.sort()
 
print(list)
print(my_list)

Pensaba en primero contar el número de letras en cada palabra de la lista, luego ordenarlos con sort, después devolver la lista pero solamente el numero más grande. Al final convertir ese número o números grandes con la lista original.

Algún consejo?

Gracias saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Eliminar palabras de la lista

Publicado por tincopasan (1082 intervenciones) el 26/09/2022 09:55:13
hay muchas formas de escribir el código, para saber el largo de las palabras está la función len(), y con la función max() sabrías cual es la más larga, después es cuestión de agregarlas a la lista, no tengo ganas de escribir así que lo haré en una línea:

1
2
3
4
5
input_string = input('Escribe palabras separadas por espacio para crear una lista: ').split()
 
lista = [ x for x in  input_string if len(x) == len(max(input_string, key=len))]
 
print(lista)

ahora te toca hacerlo sin comprensión de listas pero es con esas funciones y un simple if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de lalo

Eliminar palabras de la lista

Publicado por lalo (15 intervenciones) el 26/09/2022 10:00:06
Wow jaja estuvo mucho mejor la solución.

Lo pude resolver con:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
input_string = input('Escribe palabras \
separadas por espacio para crear una lista\n')
lista = input_string.split()
 
lista_palabra, PalabraL, masp = [], "", []
 
for i in lista:
    if len(i) >= len(PalabraL): PalabraL = i
    else: continue
for e in lista:
    if len(PalabraL) == len(e) and e != PalabraL: masp.append(e)
    else: continue
masp.append(PalabraL)
 
print(f"Los nombres mas largos son {', '.join(masp)}. ")

Gracias por el aporte, de 15 lineas se redujo a 3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de lalo

Eliminar palabras de la lista

Publicado por lalo (15 intervenciones) el 26/09/2022 09:58:10
Creo que ya pude solucionarlo, les paso el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
input_string = input('Escribe palabras \
separadas por espacio para crear una lista\n')
lista = input_string.split()
 
lista_palabra, PalabraL, masp = [], "", []
 
for i in lista:
    if len(i) >= len(PalabraL): PalabraL = i
    else: continue
for e in lista:
    if len(PalabraL) == len(e) and e != PalabraL: masp.append(e)
    else: continue
masp.append(PalabraL)
 
print(f"Los nombres mas largos son {', '.join(masp)}. ")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar