a = [1, 2, 9, 5, 1]
b = [9, 8, 7, 6, 5]
Tôi muốn đếm số lượng trùng lặp giữa hai danh sách. Vì vậy, bằng cách sử dụng ở trên, tôi muốn trả về một số 2 vì 9 và 5 là phổ biến cho cả hai danh sách.Đếm trùng lặp giữa 2 danh sách
Tôi đã thử một cái gì đó như thế này nhưng nó không hoàn toàn hoạt động.
def filter_(x, y):
count = 0
for num in y:
if num in x:
count += 1
return count
Lưu ý rằng khi nó hoạt động (trừ 'return' hai lần), nó có phức tạp' O (n * m) ', tức là quy mô khá khủng khiếp. – delnan
@delnan cảm ơn mẹo. do đó, sử dụng quy mô giao lộ tốt hơn. – super9
Có. Bạn thực sự có thể làm tốt hơn, nhưng điều đó đòi hỏi nhiều hơn một dòng mã (ý tưởng là bạn chỉ cần một bộ danh sách đầu tiên, sau đó lặp lại lần thứ hai và giữ các mục nằm trong tập hợp - tiết kiệm tạo một giây bộ). – delnan