2016-08-15 20 views
7

Trong Python, có tùy chọn cung cấp điều kiện cho biết có bao gồm một mục cụ thể trong hiểu hay không.Đọc hiểu có điều kiện trong Julia

[x**2 for x in range(10) if x > 5] 
# [36, 49, 64, 81] 

Có thể có điều kiện sử dụng chức năng, nhưng tôi vẫn chưa tìm ra cách để loại trừ toàn bộ giá trị, trừ filter! ing họ bên ngoài của sự hiểu biết.

l = collect(0:9) 
filter!(x -> x > 5, l) 
l = [x^2 for x in l] # alternatively, map!(x -> x^2, l) 
# [36, 49, 64, 81] 

Điều này có thể xảy ra ở Julia không?

Trả lời

14

Có thể có trong Julia mới nhất.

julia> [x^2 for x in 0:9 if x > 5] 
4-element Array{Int64,1}: 
36 
49 
64 
81 

Nếu không, vâng, nếu bạn đang sử dụng trước 0,5 bạn đang mắc kẹt với:

[x^2 for x in filter((x) -> x > 5, 0:9)] 
+1

@ 2Cubed 0.4.6 là phiên bản 'ổn định'. Nhưng các bản phát hành 'hàng đêm' có sẵn để tải xuống từ trang web. (nó hiện đang ở mức 0.6+!) –

+2

Thật vậy. IMO 0.5 có một sự cân bằng ổn định/tính năng tốt vào lúc này vì vậy tôi sẽ đi cho rằng nếu tôi là bạn @ 2Cubed –

+1

@AlexanderMorley Có vẻ như có các ứng cử viên phát hành cho 0,5 đã - có nên được phát hành đầy đủ rất sớm! – 2Cubed

Các vấn đề liên quan