## The challenge

Define a function that removes duplicates from an array of numbers and returns it as a result.

The order of the sequence has to stay the same.

## The solution in Python code

Option 1:

 ``````1 2 `````` ``````def distinct(seq): return list(dict.fromkeys(seq)) ``````

Option 2:

 ``````1 `````` ``````distinct = lambda s: [e for i,e in enumerate(s) if e not in s[:i]] ``````

Option 3:

 ``````1 2 3 4 5 6 7 8 `````` ``````def distinct(seq): result = [] seen = set() for a in seq: if a not in seen: result.append(a) seen.add(a) return result ``````

## Test cases to validate our solution

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 `````` ``````import test from solution import distinct @test.describe("Fixed Tests") def fixed_tests(): @test.it('Basic Test Cases') def basic_test_cases(): test.assert_equals(distinct([1]), [1]) test.assert_equals(distinct([1, 2]), [1, 2]) test.assert_equals(distinct([1, 1, 2]), [1, 2]) test.assert_equals(distinct([1, 1, 1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]) test.assert_equals(distinct([1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 7, 7]), [1, 2, 3, 4, 5, 6, 7]) ``````