首页 > 解决方案 > 展平字典python列表

问题描述

所以我有以下列表列表,我试图通过仅在列表项完全匹配时合并重复项来减小大小。订单很重要(更改项目订单将是一个问题)。它们也不是大小相等的列表。

例子:

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

但是,它似乎不起作用。

标签: python-3.xlistdictionarymerge

解决方案


只需这样做:

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']]


推荐阅读