微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将具有最接近值的整数列表分组

如何解决将具有最接近值的整数列表分组

喜欢

d = [23,67,110,25,69,24,102,109]

d.sort()

diff = [y - x for x, y in zip(*[iter(d)] * 2)]
avg = sum(diff) / len(diff)

m = [[d[0]]]

for x in d[1:]:
    if x - m[-1][0] < avg:
        m[-1].append(x)
    else:
        m.append([x])


print m
## [[23, 24, 25], [67, 69], [102, 109, 110]]

首先,我们计算顺序元素之间的平均差异,然后将差异小于平均值的元素分组在一起。

解决方法

我有一个清单:

d = [23,67,110,25,69,24,102,109]

如何将带有动态间隙的最近值分组,并创建这样的元组,最快的方法是什么?:

[(23,25),(67,69),(102,109,110)]

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