сгладить список словарей python - PullRequest
0 голосов
/ 22 июня 2019

Итак, у меня есть следующий список списков, и я пытаюсь уменьшить размер, объединяя дубликаты, только если элементы списков точно совпадают. порядок значительный (изменение порядка элементов будет проблемой). также они не равны по размеру списков.

Пример:

List = [["a", "b", "c", "d", "e"], ["a", "b"], ["a", "b", "c", "d", "e", "f"], ["a"], ["a", "b", "c", "d", "e"], ["a", "b"]]

Я ожидаю следующий вывод:

List = [["a", "b", "c", "d", "e"], ["a", "b"], ["a", "b", "c", "d", "e", "f"], ["a"]]

это код:

def consolidate(all_list):
    a = {}
    for v in all_list:
        if len(v) > 0:
            k = v[0]
            if k not in a: a[k] = []
                a[k].append(v[1:])
    for k in a:
        a[k] = consolidate(a[k])
    return a

Однако, похоже, это не работает.

1 Ответ

2 голосов
/ 22 июня 2019

Просто сделайте:

output = []
for x in List:
    if x not in output : output.append(x)
output

выход

[['a', 'b', 'c', 'd', 'e'], ['a', 'b'], ['a', 'b', 'c', ' d ',' e ',' f '], [' a ']]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...