Computer >> Máy Tính >  >> Lập trình >> Python

Python - Lọc các giá trị phủ định từ từ điển nhất định

Là một phần của phân tích dữ liệu, chúng ta sẽ xem xét các tình huống để loại bỏ các giá trị phủ định trong một từ điển. Để làm được điều này, chúng ta phải lặp lại từng phần tử trong từ điển và sử dụng một điều kiện để kiểm tra giá trị. Hai cách tiếp cận dưới đây có thể được thực hiện để đạt được điều này.

Sử dụng vòng lặp for

W chỉ cần lặp qua các phần tử của danh sách bằng vòng lặp for. Trong mỗi lần lặp, chúng tôi sử dụng hàm items để so sánh giá trị của phần tử với giá trị 0 để kiểm tra giá trị âm.

Ví dụ

dict_1 = {'x':10, 'y':20, 'z':-30, 'p':-0.5, 'q':50}

print ("Given Dictionary :", str(dict_1))

final_res_1 = dict((i, j) for i, j in dict_1.items() if j >= 0)

print("After filtering the negative values from dictionary : ", str(final_res_1))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau:

Given Dictionary : {'x': 10, 'y': 20, 'z': -30, 'p': -0.5, 'q': 50}
After filtering the negative values from dictionary : {'x': 10, 'y': 20, 'q': 50}

Sử dụng hàm lambda

Chúng tôi sử dụng một hàm lambda để có cú pháp ngắn hơn và rõ ràng hơn. Trong trường hợp này, chúng tôi thực hiện cùng một logic như trên nhưng sử dụng một hàm lambda để thay thế.

Ví dụ

dictA = {'x':-4/2, 'y':15, 'z':-7.5, 'p':-9, 'q':17.2}

print ("\nGiven Dictionary :", dictA)

final_res = dict(filter(lambda k: k[1] >= 0.0, dictA.items()))

print("After filtering the negative values from dictionary : ", str(final_res))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau:

Given Dictionary : {'x': -2.0, 'y': 15, 'z': -7.5, 'p': -9, 'q': 17.2}
After filtering the negative values from dictionary : {'y': 15, 'q': 17.2}