2011-09-13 16 views
6

Quiero hacer una nueva lista de otra lista de palabras; cuando se cumple una cierta condición de la palabra. En este caso, quiero agregar todas las palabras que tienen una longitud de 9 a una nueva lista.Python: crea una nueva lista de una lista cuando se cumple una determinada condición

he utilizado:

resultReal = [y for y in resultVital if not len(y) < 4] 

para eliminar todas las entradas que se encuentran bajo la longitud de 4. Sin embargo, no quiero para quitar las entradas ahora. Quiero crear una nueva lista con las palabras, pero manteniéndolas en la lista anterior.

Tal vez algo como esto:

if len(word) == 9: 
    newlist.append() 

Gracias.

Respuesta

17

Lo siento, se dio cuenta de que quería longitud, 9, no longitud 9 o superior.

newlist = [word for word in words if len(word) == 9] 
+0

Eso es probablemente supone que es un '] 'al final en lugar de un') '. –

+0

Como no habrá palabras con más de nueve caracteres en total en la lista de palabras o por entrada, usar> 8 funcionará perfectamente. ¡Muchas gracias! –

+0

@ mathias-ahonen - ¡Feliz de ayudar! Recuerde marcar las respuestas como aceptadas cuando haya encontrado una que sea adecuada para usted. Además, gracias a F.J por atrapar mi error tipográfico. :) –

1

Probar:

newlist = [] 
for item in resultVital: 
    if len(item) == 9: 
     newlist.append(item)
1

probar esto:

newlist = [word for word in words if len(word) == 9] 
+0

Verifique las sugerencias de formato en la parte inferior derecha de la página de edición. Formatee su código correctamente para que sea más fácil de leer. –

Cuestiones relacionadas