Уникальные списки из списка

Учитывая список, который мне нужен чтобы вернуть список списков уникальных элементов. Я смотрю, есть ли более питонический способ, чем то, что я придумал:

def unique_lists(l):
    m = {}
    for x in l:
        m[x] = (m[x] if m.get(x) != None else []) + [x]
    return [x for x in m.values()]    

print(unique_lists([1,2,2,3,4,5,5,5,6,7,8,8,9]))

Вывод:

[[1], [2, 2], [3], [4], [5, 5, 5], [6], [7], [8, 8], [9]]
7
задан Yuriy Zubarev 30 March 2012 в 04:00
поделиться