['1', '2', '4', 'c']
Thất bại cho điều kiện
x[0] != "1"
cũng như
x[1] != "2"
Thay vì sử dụng
x[0] != "1"
7, tôi tin rằng cách tự nhiên và dễ đọc hơn là:lambda x: [x[0], x[1], x[2]] != ['1','2','3']
Vì tò mò, tôi đã so sánh ba phương pháp, er ... so sánh và kết quả như mong đợi: danh sách cắt lát là chậm nhất, sử dụng các bộ dữ liệu nhanh hơn và sử dụng các toán tử Boolean là nhanh nhất. Chính xác hơn, ba cách tiếp cận được so sánh là
list_slice_compare = lambda x: x[:3] != [1,2,3]
tuple_compare = lambda x: [x[0],x[1],x[2]] != [1,2,3]
bool_op_compare = lambda x: x[0]!= 1 or x[1] != 2 or x[2]!= 3
Và kết quả, tương ứng:
In [30]: timeit.Timer[setup="import timeit,random; rand_list = [random.randint[1,9] for _ in range[4]]; list_slice_compare = lambda x: x[:3] != [1,2,3]", stmt="list_slice_compare[rand_list]"].repeat[]
Out[30]: [0.3207617177499742, 0.3230015148823213, 0.31987868894918847]
In [31]: timeit.Timer[setup="import timeit,random; rand_list = [random.randint[1,9] for _ in range[4]]; tuple_compare = lambda x: [x[0],x[1],x[2]] != [1,2,3]", stmt="tuple_compare[rand_list]"].repeat[]
Out[31]: [0.2399928924012329, 0.23692036176475995, 0.2369164465619633]
In [32]: timeit.Timer[setup="import timeit,random; rand_list = [random.randint[1,9] for _ in range[4]]; bool_op_compare = lambda x: x[0]!= 1 or x[1] != 2 or x[2]!= 3", stmt="bool_op_compare[rand_list]"].repeat[]
Out[32]: [0.144389363900018, 0.1452672728203197, 0.1431527621755322]
2 phút đọc
Lambda là một chức năng Python một lớp được sử dụng để nhanh chóng xây dựng một chức năng một cách dễ dàng, trong bài đăng này, chúng tôi sẽ thấy cách sử dụng IF-Else hoặc nhiều điều kiện để đánh giá biểu thức bằng các hàm Lambda.
Ngoài ra, chúng ta sẽ xem cách lọc danh sách bằng cách áp dụng các điều kiện trong vòng lặp và lọc trong hàm Lambda
Lambda If-Else & Elif với nhiều điều kiện
Chúng ta có thể sử dụng if-Else và Elif và nhiều điều kiện sử dụng chức năng Lambda trong Python.
Hãy lấy một ví dụ để hiểu cách sử dụng các điều kiện trong Lambda
Condition:
Chúng tôi muốn gán lớp dựa trên điểm số thu được trong bài kiểm tra, đây là điều kiện để gán các điểm:
if grade > 7:
A+
elif grade >= 5 and grade =5 and x 7
x[0] != "1"
2Danh sách bộ lọc Lambda với nhiều điều kiện
Lọc danh sách với Lambda sẽ trả về tất cả các yếu tố của danh sách trả về đúng cho chức năng Lambda
Các điều kiện được tham gia bởi
x[0] != "1"
8, chúng sẽ trả lại x[0] != "1"
9 chỉ khi tất cả các điều kiện là x[0] != "1"
9 và nếu chúng được tham gia bởi x[0] != "1"
7, chúng sẽ trở lại x[0] != "1"
9 khi lần đầu tiên được đánh giá là x[0] != "1"
9x[0] != "1"
3Trong trường hợp này, mục duy nhất trong danh sách thỏa mãn điều kiện được trả lại
Lambda đánh giá danh sách với nhiều điều kiện bên trong một vòng lặp
Chúng tôi cũng có thể sử dụng Lambda để lặp qua danh sách và đánh giá một điều kiện
Hãy để xác định một chức năng với tất cả các điều kiện mà chúng tôi muốn đánh giá
x[0] != "1"
4Sẽ xác định chức năng Lambda để ánh xạ từng mục trong danh sách dữ liệu cho chức năng này
x[0] != "1"
5Hãy để đánh giá điểm cho từng mục trong danh sách dữ liệu
x[0] != "1"
6