# Python Counter| Find duplicate rows in a binary matrix

• Last Updated : 30 Dec, 2020

Given a binary matrix whose elements are only 0 and 1, we need to print the rows which are duplicate of rows which are already present in the matrix.

Examples:

```Input : [[1, 1, 0, 1, 0, 1],
[0, 0, 1, 0, 0, 1],
[1, 0, 1, 1, 0, 0],
[1, 1, 0, 1, 0, 1],
[0, 0, 1, 0, 0, 1],
[0, 0, 1, 0, 0, 1]]

Output : (1, 1, 0, 1, 0, 1)
(0, 0, 1, 0, 0, 1)
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

We have existing solution for this problem please refer Find duplicate rows in a binary matrix link. We can solve this problem very quickly in Python using Counter() method. Approach is very simple,

1. Create a dictionary using counter method which will have rows as key and it’s frequency as value.
2. Now traverse dictionary completely and print all rows which have frequency greater than 1.
 `# Function to find duplicate rows in a binary matrix``from` `collections ``import` `Counter`` ` `def` `duplicate(``input``):`` ` `     ``# since lists are unhasable for counter method``     ``# because lists are mutable so first we will cast``     ``# each row (list) into tuple``     ``input` `=` `map``(``tuple``,``input``)`` ` `     ``# now create dictionary``     ``freqDict ``=` `Counter(``input``)`` ` `     ``# print all rows having frequency greater than 1``     ``for` `(row,freq) ``in` `freqDict.items():``          ``if` `freq>``1``:``              ``print` `(row)`` ` `# Driver program``if` `__name__ ``=``=` `"__main__"``:``    ``input` `=` `[[``1``, ``1``, ``0``, ``1``, ``0``, ``1``],``            ``[``0``, ``0``, ``1``, ``0``, ``0``, ``1``],``            ``[``1``, ``0``, ``1``, ``1``, ``0``, ``0``],``            ``[``1``, ``1``, ``0``, ``1``, ``0``, ``1``],``            ``[``0``, ``0``, ``1``, ``0``, ``0``, ``1``],``            ``[``0``, ``0``, ``1``, ``0``, ``0``, ``1``]]``    ``duplicate(``input``)`

Output:

```(1, 1, 0, 1, 0, 1)
(0, 0, 1, 0, 0, 1)
```

My Personal Notes arrow_drop_up