from collections import Counter, defaultdict
import random
import timeit


data = [random.randint(0, 9) for _ in range(1000)]


def ex1():
    c = Counter(data)
    return [i for i in data if c[i] > 1]


def ex2():
    return [i for i in data if data.count(i) > 1]
    

def ex3():
    c = defaultdict(int)

    for i in data:
   		c[i] += 1

    return [i for i in data if c[i] > 1]


if __name__ == '__main__':
    print('ex1', timeit.timeit(ex1, number=30))
    print('ex2', timeit.timeit(ex2, number=30))
    print('ex3', timeit.timeit(ex3, number=30))
