2011-09-13 18 views
6

Voglio creare un nuovo elenco da un altro elenco di parole; quando una certa condizione della parola è soddisfatta. In questo caso voglio aggiungere tutte le parole che hanno la lunghezza di 9 in una nuova lista.Python: Crea un nuovo elenco da un elenco quando viene soddisfatta una determinata condizione

ho usato:

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

per rimuovere tutte le voci che sono sotto la lunghezza di 4. Tuttavia, non voglio per rimuovere le voci ora. Voglio creare una nuova lista con le parole, ma conservandole nella vecchia lista.

Forse qualcosa di simile:

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

Grazie.

risposta

17

Spiacente, ho capito che volevi lunghezza, 9, non lunghezza 9 o maggiore.

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

che è probabilmente doveva essere una ']' alla fine invece di un ')'. –

+0

Poiché non ci saranno parole con più di nove caratteri in totale nella lista di parole o per immissione, usando> 8 funzionerà perfettamente. Grazie mille! –

+0

@ mathias-ahonen - Felice di aiutare! Ricorda di contrassegnare le risposte come accettate quando ne hai trovato uno che funziona per te. Inoltre, grazie a F.J per aver catturato il mio errore di battitura. :) –

1

Prova:

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

provare questo:

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

Controllare i suggerimenti di formattazione nella parte inferiore, lato destro della pagina di modifica. Si prega di formattare il codice correttamente per renderlo più facile da leggere. –

Problemi correlati