Implement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements.
For example:
Copy uniqueInOrder("AAAABBBCCDAABBB") == {'A', 'B', 'C', 'D', 'A', 'B'}
uniqueInOrder("ABBCcAD") == {'A', 'B', 'C', 'c', 'A', 'D'}
uniqueInOrder([1,2,2,3,3]) == {1,2,3}
Copy uniqueInOrder ( 'AAAABBBCCDAABBB' ) == [ 'A' , 'B' , 'C' , 'D' , 'A' , 'B' ]
uniqueInOrder ( 'ABBCcAD' ) == [ 'A' , 'B' , 'C' , 'c' , 'A' , 'D' ]
uniqueInOrder ([ 1 , 2 , 2 , 3 , 3 ]) == [ 1 , 2 , 3 ]
Copy unique_in_order ( 'AAAABBBCCDAABBB' ) == [ 'A' , 'B' , 'C' , 'D' , 'A' , 'B' ]
unique_in_order ( 'ABBCcAD' ) == [ 'A' , 'B' , 'C' , 'c' , 'A' , 'D' ]
unique_in_order ([ 1 , 2 , 2 , 3 , 3 ]) == [ 1 , 2 , 3 ]
Copy unique_in_order( 'AAAABBBCCDAABBB' ) == [ 'A' , 'B' , 'C' , 'D' , 'A' , 'B' ]
unique_in_order( 'ABBCcAD' ) == [ 'A' , 'B' , 'C' , 'c' , 'A' , 'D' ]
unique_in_order([ 1 , 2 , 2 , 3 , 3 ]) == [ 1 , 2 , 3 ]
Copy uniqueInOrder "AAAABBBCCDAABBB" == "ABCDAB"
uniqueInOrder "ABBCcAD" == "ABCcAD"
uniqueInOrder [ 1 , 2 , 2 , 3 , 3 ] == [ 1 , 2 , 3 ]
Copy unique_in_order("AAAABBBCCDAABBB") == ['A', 'B', 'C', 'D', 'A', 'B']
unique_in_order("ABBCcAD") == ['A', 'B', 'C', 'c', 'A', 'D']
unique_in_order([1,2,2,3,3]) == [1,2,3]
Solutions
🐍 Python
Copy def unique_in_order ( iterable ):
return [] if not iterable else [ i for n , i in enumerate (iterable) if n == 0 or i != iterable [ n - 1 ] ]