# Python – Count of matching elements among lists (Including duplicates)

• Last Updated : 14 Jun, 2022

Given 2 lists, count all the elements that are similar in both the lists including duplicated.

Input : 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.

Method #1 : Using loop

This is brute way in which this task can be performed. In this, we iterate for each element of other list while iterating for one list, and increase the counter.

## Python3

 `# Python3 code to demonstrate working of``# Count of matching elements among lists [ Including duplicates ]``# Using redunce``from` `functools ``import` `reduce` `# initializing lists``test_list1 ``=` `[``3``, ``5``, ``6``, ``7``, ``3``, ``2``]``test_list2 ``=` `[``5``, ``5``, ``3``, ``9``, ``8``]` `# printing original lists``print``(``"The original list 1 : "` `+` `str``(test_list1))``print``(``"The original list 2 : "` `+` `str``(test_list2))` `# using reduce to count the element of list``res ``=` `reduce``(``lambda` `x, y: x``+``test_list1.count(y), ``set``(test_list2), ``0``)` `# printing result``print``(``"All matching elements : "` `+` `str``(res))`

Output

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

## Python3

 `# Python3 code to demonstrate working of``# Count of matching elements among lists [ Including duplicates ]``# Using sum() + generator expression` `# initializing lists``test_list1 ``=` `[``3``, ``5``, ``6``, ``7``, ``2``, ``3``]``test_list2 ``=` `[``5``, ``5``, ``3``, ``9``, ``8``]` `# printing original lists``print``(``"The original list 1 : "` `+` `str``(test_list1))``print``(``"The original list 2 : "` `+` `str``(test_list2))` `# using sum to count occurrences``res ``=` `sum``(ele ``in` `test_list1 ``for` `ele ``in` `test_list2)` `# printing result``print``(``"All matching elements : "` `+` `str``(res))`

Output

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

Method#3: Using reduce + count function

The combination of above method can be used to solve this problem. In this, we count element by using reduce and count function.

## Python3

 `# Python3 code to demonstrate working of``# Count of matching elements among lists [ Including duplicates ]``# Using redunce``from` `functools ``import` `reduce` `# initializing lists``test_list1 ``=` `[``3``, ``5``, ``6``, ``7``, ``3``, ``2``]``test_list2 ``=` `[``5``, ``5``, ``3``, ``9``, ``8``]` `# printing original lists``print``(``"The original list 1 : "` `+` `str``(test_list1))``print``(``"The original list 2 : "` `+` `str``(test_list2))` `# using reduce to count the element of list``res ``=` `reduce``(``lambda` `x, y: x``+``test_list1.count(y), ``set``(test_list2), ``0``)` `# printing result``print``(``"All matching elements : "` `+` `str``(res))`

Output

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

My Personal Notes arrow_drop_up