2011-01-03 19 views

Odpowiedz

52

Można użyć wyrażeń listowych, aby je filtrować:

j2 = [i for i in j if i >= 5] 

Jeśli rzeczywiście chcesz go klasyfikowane jak Twój przykład był, można użyć sorted:

j2 = sorted(i for i in j if i >= 5) 

lub zadzwoń sort na finał list:

j2 = [i for i in j if i >= 5] 
j2.sort() 
+0

Nie wiedziałem, gdzie składnia jest miła! – ismail

+3

@ İsmail 'cartman' Dönmez: To prawdopodobnie dlatego, że jest to błąd składni :) –

+0

@Ismail To tak naprawdę "jeśli", po prostu straciłem rozum, kiedy pisałem tę odpowiedź :). Cieszę się, że opuściłeś ten komentarz, bo inaczej prawdopodobnie bym tego nie zauważył. –

7

Możesz użyć rozumienia list:

[x for x in j if x >= 5] 
7

Lista rozumienie jest proste podejście:

j2 = [x for x in j if x >= 5] 

Alternatywnie, można użyć filter na dokładnie tym samym wynik:

j2 = filter(lambda x: x >= 5, j) 

Uwaga że oryginalna lista j jest niemodyfikowana.

1

Od żądanego wyjścia jest posortowana, trzeba także je uporządkować:

>>> j=[4, 5, 6, 7, 1, 3, 7, 5] 
>>> sorted(x for x in j if x >= 5) 
[5, 5, 6, 7, 7] 
Powiązane problemy