【发布时间】:2016-11-19 13:59:09
【问题描述】:
我正在尝试编写一个快速函数,该函数将遍历子列表中的元素并在子列表包含元素时合并子列表。例如,列表[[0, 3], [3, 4], [5, 6]] 应该合并到[[0, 3, 4], [5, 6]]. 子列表可以是任意大小,每个子列表可以有不同的大小,因此可以包含许多元素。
到目前为止,我的代码(不起作用)如下所示。出现的错误是:slice indices must be integers or None or have an __index__ method
def join_clusters(clusters):
for cluster in clusters:
for j in cluster:
for k in clusters[cluster:]:
for h in k:
if j == h:
cluster.append(k)
clusters.pop(k)
return clusters
【问题讨论】:
-
您只想合并相邻的子列表吗?
[[1,2,3], [3,4,5], [5,6,7]]会合并到[[1,2,3,4,5,6,7]]吗? -
@PM2Ring 我想是的,我就是这样做的
-
我认为您正在尝试解决集合合并/连接组件/联合查找问题-在这种情况下,它与许多以前的问题重复-但您的示例有点令人困惑,因为它可以解释为连接相邻链。
[[1,2],[3,1],[1,3]]应该变成[[1,2,3]]吗? -
是的,这就是我所需要的。 [[1,2],[3,1],[1,3]] 将变为 [[1,2,3]]
标签: python