2011-01-03 41 views

Trả lời

52

Bạn có thể sử dụng danh sách hiểu để lọc nó:

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

Nếu bạn thực sự muốn nó được sắp xếp như ví dụ của bạn là, bạn có thể sử dụng sorted:

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

hoặc gọi sort vào trận chung kết danh sách:

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

Tôi không biết về cú pháp ở đâu, tốt đẹp! – ismail

+3

@ İsmail 'cartman' Dönmez: Có lẽ vì đó là SyntaxError :) –

+0

@Ismail Nó thực sự là 'if', tôi chỉ mất trí khi tôi viết câu trả lời đó :). Tôi vui mừng vì bạn đã để lại bình luận đó hoặc tôi có lẽ sẽ không chú ý đến –

7

Bạn có thể sử dụng danh sách hiểu:

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

Một danh sách hiểu là một phương pháp đơn giản:

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

Cách khác, bạn có thể sử dụng filter cho kết quả chính xác như nhau:

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

Lưu ý rằng danh sách ban đầu j là chưa sửa đổi.

1

Kể từ khi đầu ra mong muốn của bạn được sắp xếp, bạn cũng cần phải sắp xếp nó:

>>> j=[4, 5, 6, 7, 1, 3, 7, 5] 
>>> sorted(x for x in j if x >= 5) 
[5, 5, 6, 7, 7] 
Các vấn đề liên quan