Trong bài viết này, chúng ta sẽ học về giải pháp và phương pháp giải quyết bài toán cho trước.
Đề bài
Cho một list iterable, chúng ta cần đếm tất cả các số dương và số âm có sẵn trong iterable.
Ở đây chúng ta sẽ thảo luận hai cách tiếp cận:
- Phương pháp brute-force
- Sử dụng hàm lambda inline
Cách 1 – Phương pháp brute-force
Ví dụ
list1 = [1, -9, 15, -16, 13]
pos_count, neg_count = 0, 0
for num in list1:
if num >= 0:
pos_count += 1
else:
neg_count += 1
print("Positive numbers: ", pos_count)
print("Negative numbers: ", neg_count)
Kết quả
Positive numbers: 3 Negative numbers: 2
Cách 2 – Sử dụng lambda & filter
Ví dụ
list1 = [1, -9, 15, -16, 13]
neg_count = len(list(filter(lambda x: (x < 0), list1)))
pos_count = len(list(filter(lambda x: (x >= 0), list1)))
print("Positive numbers: ", pos_count)
print("Negative numbers: ", neg_count)
Kết quả
Positive numbers: 3 Negative numbers: 2
Kết luận
Trong bài viết này, chúng ta đã học về cách đếm số dương & số âm trong list.