Форум сайта python.su
clusters = [
[[1, 1], [1, 2]],
[[0, 2], [1, 1]],
[[1, 2], [2, 1]],
[[3, 2], [3, 0]], [[0, 4], [1, 3]], [[2, 4], [3, 5]], [[4, 5], [4, 3]], [[2, 7], [2, 5]], [[0, 8], [0, 6]], [[1, 8], [1, 6]], [[2, 8], [2, 6]], [[3, 8], [3, 6]]
]
Отредактировано (Март 7, 2012 16:50:46)
Офлайн
clusters = [[[1, 1], [1, 2]], [[0, 2], [1, 1]], [[1, 2], [2, 1]],
[[3, 2], [3, 0]], [[0, 4], [1, 3]], [[2, 4], [3, 5]],
[[4, 5], [4, 3]], [[2, 7], [2, 5]], [[0, 8], [0, 6]],
[[1, 8], [1, 6]], [[2, 8], [2, 6]], [[3, 8], [3, 6]], ]
def cluster_filter(cluster):
a, b = cluster
return len(set(a) & set(b))
print filter(cluster_filter, clusters)
Офлайн
s0rgрезультат вашей программы:
[
[[1, 1], [1, 2]], [[1, 2], [2, 1]], [[3, 2], [3, 0]],
[[4, 5], [4, 3]], [[2, 7], [2, 5]], [[0, 8], [0, 6]],
[[1, 8], [1, 6]], [[2, 8], [2, 6]], [[3, 8], [3, 6]]
]
[
[ [[1, 1], [1, 2]],
[[0, 2], [1, 1]],
[[1, 2], [2, 1]] ],
# связующие элементы [1,1] и [1,2]
[ [[...], [...]],
[[...], [...]],
[[...], [...]] ]
]
Отредактировано (Март 7, 2012 20:11:46)
Офлайн
def cluster_grouper(clusters):
grouped = []
result = []
for cls in clusters:
if cls in grouped:
continue
grouped.append(cls)
groups = [cls,]
a, b = cls
for ccls in clusters:
if (ccls not in grouped) and (a in ccls or b in ccls):
grouped.append(ccls)
groups.append(ccls)
result.append(groups)
return result
Офлайн
спасибо за помощь, все работает как надо.
Офлайн