pythonを用いて2次元配列から重複する配列を取り出す


2次元配列liから重複する配列数を指定することでその配列を取り出せず困っています。

[code]

    li=[[1,2,3],[5,6,7],[2,3,4,5],[1,2,3],[7,8,9],[2,3,4,5],[1,2,3],[5,6,7]]
    
[/code]

例えば、配列[1,2,3]は3つ重複しており、o=3 を指定することで[1,2,3]が取り出せるようにしたいです。  
また、o=2とすると[5,6,7],[2,3,4,5]が取り出せることを想定しております。

よろしくお願いします。




回答

[code]

    >>> from collections import Counter
    >>> li=[[1,2,3],[5,6,7],[2,3,4,5],[1,2,3],[7,8,9],[2,3,4,5],[1,2,3],[5,6,7]]
    >>> o = 2
    >>> c = Counter(tuple(x) for x in li)
    >>> [list(k) for k,v in c.items() if v==o]
    [[2, 3, 4, 5], [5, 6, 7]]
    
[/code]

