2011-09-13 24 views
6

Chcę utworzyć nową listę z innej listy słów; gdy spełniony jest pewien warunek słowa. W tym przypadku chcę dodać wszystkie słowa, które mają długość 9 do nowej listy.Python: Utwórz nową listę z listy, gdy spełniony jest pewien warunek.

Użyłem:

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

aby usunąć wszystkie wpisy, które są pod długości 4. Jednak nie chcę, aby usunąć wpisy teraz. Chcę utworzyć nową listę ze słowami, ale zachowując je na starej liście.

Może coś takiego:

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

Dzięki.

Odpowiedz

17

Przepraszam, uświadomiłem sobie, że chciałeś mieć długość 9, a nie 9 lub więcej.

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

To pewnie miało być ']' na końcu zamiast od ')'. –

+0

Ponieważ nie będzie słów zawierających więcej niż dziewięć znaków na liście słów lub danych wejściowych, użycie> 8 będzie działać idealnie. Dziękuję Ci bardzo! –

+0

@ mathias-ahonen - Z przyjemnością pomożemy! Pamiętaj, aby oznaczyć odpowiedzi jako zaakceptowane, gdy znajdziesz taką, która działa dla Ciebie. Ponadto, dzięki F.J za złapanie mojej literówki. :) –

1

Spróbuj:

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

spróbuj tego:

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

Sprawdź wskazówki dotyczące formatowania w dolnej, prawej części strony edycji. Popraw poprawnie swój kod, aby ułatwić czytanie. –

Powiązane problemy