Hướng dẫn python filter(lambda multiple conditions) - bộ lọc python (lambda nhiều điều kiện)

['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"
2

Danh 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"
9

x[0] != "1"
3

Trong 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"
4

Sẽ 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"
5

Hãy để đánh giá điểm cho từng mục trong danh sách dữ liệu

x[0] != "1"
6

Bài Viết Liên Quan

Chủ Đề