Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Test for list without duplicated elements

There aren't a set of instructions, but I basically have to write a code for def hasNoDuplicate and it returns True exactly when list has no duplicates. This is what I've written, I'm new to programming so all of this is very overwhelming. I don't know exactly what to put in the if statement. Any advice would help a lot!

def hasNoDuplicates(values):
    foundCounterExampleYet = False
    for value in values:
        if():
            foundCounterExampleYet = True
    return not(foundCounterExampleYet)
like image 581
Caroline Rodgers Avatar asked May 14 '26 09:05

Caroline Rodgers


1 Answers

def hasNoDuplicates(values):
    foundCounterExampleYet = False
    value = None
    while values:
       value = values.pop()
       if value in values:
           foundCounterExampleYet = True
           break
    return not(foundCounterExampleYet)

Now you get:

>>> hasNoDuplicates([1,2,3])
True
>>> hasNoDuplicates([1,2,3,4,6,7,8,9,4])
False
>>> 

What this code does is, it takes the input list, and one by one takes out the last element from the list and checks if the item exists in the list. If it exists, then a duplication is detected, and it changes the value of foundCounterExampleYet and consequently jumps out of the loop. This checking happens until the list becomes empty. while values means do this while the list is not empty

The pop method takes out the last element from the list. But it has side effect, meaning it changes the value of the initial input:

>>> [1,2,3].pop()
3
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]
like image 184
Omid Avatar answered May 16 '26 01:05

Omid



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!