如何解决扩展项目,然后在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]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。