In this example, we will create a function in Python which will return the total number of duplicate pair of numbers within a list. For example, if we enter [0,0,0,0] into that function it will return 2 because there are two pairs of duplicate number within that list.

```def duplicates(arr):

global count
count = 0
while(len(arr) > 0):
find = arr.pop(0)
for i in range(len(arr)) :
if find == arr[i] :
count += 1
del arr[i]
break
return count
```

In the next article, we will start another new Python project which will stay for at least a month, if you want to contribute to that project you can do so by creating a pool request on Github, stay tune and get ready for the new Python project starting from the next article onward!

0

1. Brian Spiering says:

I got here from Planet Python. Your code is correct but it does not follow Python conventions or uses the built-in Python features. For example, you don’t need global variables to solve this problem. I think you might be misleading junior programmers into writing low quality code. Here is a simpler way to solve the problem:

def duplicates(arr):
n_duplicates = 0
while arr:
afind = arr.pop(0)
try:
arr.remove(find)
n_duplicates += 1
except ValueError:
pass
return n_duplicates

assert duplicates([0, 0, 0, 0]) == 2

1. IslandTropicalMen says:

Thank you very much for your contribution, but are you sure it is a good idea to directly use a python list as the boolean logic to control the while loop?

2. Eric says:

In addition to using an ill-advised global variable, your solution unexpectedly modifies the array passed in, and can look at array element multiple times. It’s much slower than it needs to be, on several levels, and doesn’t work for arbitrary sequences. Consider, for example:

def duplicates(seq):
from collections import Counter
return sum(n//2 for n in Counter(seq).values())
duplicates([0,0,0,0])
# 2