Giả sử rằng tôi có một danh sách có số lượng lớn các mục.python: lấy số lượng mục từ danh sách (chuỗi) với điều kiện nhất định
l = [ 1, 4, 6, 30, 2, ... ]
Tôi muốn nhận được số lượng mục từ danh sách đó, trong đó mục phải thỏa mãn điều kiện nhất định. Suy nghĩ đầu tiên của tôi là:
count = len([i for i in l if my_condition(l)])
Nhưng nếu my_condition() danh sách lọc cũng có số lượng lớn các mặt hàng, tôi nghĩ rằng tạo danh sách mới cho kết quả lọc chỉ là sự lãng phí bộ nhớ. Để đạt hiệu quả, IMHO, cuộc gọi trên không thể tốt hơn:
count = 0
for i in l:
if my_condition(l):
count += 1
Có cách nào để đạt được số mục thỏa mãn điều kiện nhất định mà không tạo danh sách tạm thời không?
Xin cảm ơn trước.
Lựa chọn giữa máy phát và danh sách là lựa chọn giữa thời gian thực hiện và mức tiêu thụ bộ nhớ. Bạn sẽ ngạc nhiên về mức độ thường xuyên của các kết quả truy cập trực quan nếu bạn cấu hình mã. Tối ưu hóa sớm là gốc rễ của mọi điều ác. –