[Tutor] Duplicate items in list

Manprit Singh manpritsinghece at gmail.com
Sat Oct 10 01:31:08 EDT 2020


Dear sir ,

Kindly look at the solution given below :
Kindly suggest , if something can be done better:

def remove_cons(lst):
    for i in range(len(lst)-1):
        if lst[i] != lst[i+1]:
            yield lst[i]
    yield lst[-1]

lst1 = [3, 3, 5, 5, 5, 6, 6, 6, 5, 9, 3, 3, 3, 5, 5, 5]
print(*remove_cons(lst1))

The answer will be :

3 5 6 5 9 3 5

Regards

Manprit Singh


On Fri, Oct 9, 2020 at 9:07 PM Manprit Singh <manpritsinghece at gmail.com>
wrote:

> Dear sir,
>
> Consider a list as given below :
>
> lst = [3, 3, 5, 5, 5, 6, 6, 6, 5, 9, 3, 3, 3, 5, 5]
> I need to print the values  as given below  and in same order:
>
> 3       # print 3 only once as there are two occurrence of 3 in the
> beginning  in list
> 5       # print 5 only once as there are 3 occurrence of 5 after 3 in the
> list
> 6       # print 6 only once as there are 3 occurrence of 6 after 5 in the
> list
> 5       # print 5 only once as there is single occurrence of 5 after 6 in
> the list
> 9       # print 9 only once as there is single occurrence of 9 after 5 in
> the list
> 3       # print 3 only once as there  are 3 occurrence of 3 after 9 in the
> list
> 5       # print 5 only once as there are 2 occurrence of 5 in the last
>
> I have written the code as given below:
> lst = [3, 3, 5, 5, 5, 6, 6, 6, 5, 9, 3, 3, 3, 5, 5]
> for i, j in enumerate(lst[:-1]):
>     if lst[i+1] != j:
>         print(j)
> print(lst[-1])
>
> which gives the answer as given above
> I feel that a better code can be written for this problem , Need your
> guidance.
>
> Regards
> Manprit singh
>
>
>


More information about the Tutor mailing list