√(x1-x2)^2+(y1-y2)^2,不就是点之间的距离了么,筛选出所有距离小于2的点,看看是有一个还是有多个,有没有 11,22,33这样的连续的,不就可以自行分组了
import re
arr = [[[int(n.group(1)),int(n.group(2))]] for n in re.finditer('(\d+)\.(\d+)','6.6 5.6 3.7 6.5 2.2 3.3 2.8 5.5')]
for i in arr:
for j in arr:
if i == j:
pass
l = ((i[0][0]-j[0][0])**2+(i[0][1]-j[0][1])**2) ** 0.5
if l>0 and l<2:
i.append([j[0][0],j[0][1]])
for i in arr:
i.sort()
z = set([str(n) for n in arr])
z = [eval(n) for n in z]
print(z)
[[[2, 2], [3, 3]], [[2, 8], [3, 7]], [[5, 5], [5, 6], [6, 5], [6, 6]]]