扩展项目,然后在python的嵌套列表中删除项目

问题描述

我正在尝试在python中对嵌套列表进行分类,我的列表很大,由于项目索引错误,我还没有成功。我的目标是,如果列表中的两个项目具有相同的成员,则用item2扩展item1并删除item2。我在python上没有足够的经验。希望你能帮忙

My pseudo code

L = [[0,1],[2,3],[4,5,13],[6,7],8],[3,10,11],[12,13]]

for i in range(len(L)-1):
    for j in range(i+1,len(L)):
        if i!=j and set(L[i]) & set(L[j]) != set():
            L[i].extend(L[j])
            L.remove(L[j])

expected L = [[0,3,2,8,13,12,13]]

解决方法

L = [[0,1],[2,3],[4,5,13],[6,7],8],[3,10,11],[12,13]]

out = []
while L:
    current = L.pop(0)
    out.append(current)
    tmp = []    
    for v in L:
        if set(v).intersection(current):
            current.extend(v)
        else:
            tmp.append(v)
    L = tmp

print(out)

打印:

[[0,3,2,8,13,12,7]]

编辑:版本2:

L = [[0,5],[8,9],[10,[1,7,9,11]] 
    
out = []
while L:
    current = L[0]
    while True:
        tmp = []
        for i,v in enumerate(L[1:],1):
            if set(v).intersection(current):
                current.extend(L.pop(i))
                break
            else:
                tmp.append(v)
        else:
            break
    out.append(current)
    L = tmp

print(out)

打印:

[[0,1,11,4,6,11]]

对于L = [[0,13]]打印:

[[0,7]]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...