Hướng dẫn count same elements in two list python - đếm các phần tử giống nhau trong hai danh sách python

Nếu bạn muốn đếm các mục nhập nhân, các giải pháp dựa trên SET sẽ thất bại; Bạn sẽ cần một cái gì đó giống như

from collections import Counter

def numDups[a, b]:
    if len[a]>len[b]:
        a,b = b,a

    a_count = Counter[a]
    b_count = Counter[b]

    return sum[min[b_count[ak], av] for ak,av in a_count.iteritems[]]

sau đó

numDups[[1,1,2,3], [1,1,1,1,1]]

Trả về 2. Thời gian chạy trên thang đo này là O [N+M].

Ngoài ra, giải pháp ban đầu của bạn

for num in y:
    if num in x:
        count += 1

là sai - áp dụng cho [1,2,3,3] và [1,1,1,1,1,3], mã của bạn sẽ trả về 3 hoặc 6, cả hai đều không đúng [câu trả lời nên là 2].

Phương pháp số 3: Sử dụng chức năng giảm + đếm

Sự kết hợp của phương pháp trên có thể được sử dụng để giải quyết vấn đề này. Trong đó, chúng tôi đếm phần tử bằng cách sử dụng chức năng giảm và đếm. & NBSP; : test_list1 = [3, 5, 6, 7, 2, 3, 5], test_list2 = [5, 5, 3, 9, 8, 5] Output : 4 Explanation : 3 repeats 2 times, and 5 two times, totalling to 4. Input : test_list1 = [3, 5, 6], test_list2 = [5, 3, 9] Output : 2 Explanation : 3 repeats 1 time, and 5 one time, totalling to 2.

from functools import reduce

Các

Python3

from functools import reduce

Các

for num in y:
    if num in x:
        count += 1
5
numDups[[1,1,2,3], [1,1,1,1,1]]
1
numDups[[1,1,2,3], [1,1,1,1,1]]
2
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
3
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
4
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
6
for num in y:
    if num in x:
        count += 1
4

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
0
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
3

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
6
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
0____11 reduce
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
5
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
7
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9from0from1

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9from4
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2from7

Đầu ra

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3

Python3

Các

for num in y:
    if num in x:
        count += 1
5
numDups[[1,1,2,3], [1,1,1,1,1]]
1
numDups[[1,1,2,3], [1,1,1,1,1]]
2
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
3
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
4
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
6
for num in y:
    if num in x:
        count += 1
4

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
0
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
3

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
6
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
0____11 reduce
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
5
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
7
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9from0from1

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9from4
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2from7

Đầu ra

The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3

Các

for num in y:
    if num in x:
        count += 1
5
numDups[[1,1,2,3], [1,1,1,1,1]]
1
numDups[[1,1,2,3], [1,1,1,1,1]]
2
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
3
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
4
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
6
for num in y:
    if num in x:
        count += 1
4

Python3

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
0
numDups[[1,1,2,3], [1,1,1,1,1]]
1
numDups[[1,1,2,3], [1,1,1,1,1]]
10
numDups[[1,1,2,3], [1,1,1,1,1]]
11
numDups[[1,1,2,3], [1,1,1,1,1]]
12

Phương pháp số 3: Sử dụng chức năng giảm + đếm

for num in y:
    if num in x:
        count += 1
5
numDups[[1,1,2,3], [1,1,1,1,1]]
1
numDups[[1,1,2,3], [1,1,1,1,1]]
2
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
5
numDups[[1,1,2,3], [1,1,1,1,1]]
4
numDups[[1,1,2,3], [1,1,1,1,1]]
3
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
4
numDups[[1,1,2,3], [1,1,1,1,1]]
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
6
for num in y:
    if num in x:
        count += 1
4

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
0
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
3

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
6
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
0____11 reduce
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
4
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
5
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
7
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9from0from1

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
8
The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
9from4
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
1
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
2from7

Đầu ra

The original list 1 : [3, 5, 6, 7, 3, 2]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3


Bài Viết Liên Quan

Chủ Đề