python一堆数字相近的分成一组

复制代码
def group_nearest_numbers(numbers, threshold):
    groups = {}
    for num in numbers:
        found = False
        for group_id, group_members in groups.items():
            if abs(num - group_members[-1]) <= threshold:
                groups[group_id].append(num)
                found = True
                break
        if not found:
            groups[len(groups)] = [num]
    return groups.values()


# 示例使用
numbers = [1, 2, 3, 4, 500, 501, 502, 1000, 1001, 1002 ,1500,1600]
threshold = 100
groups = group_nearest_numbers(numbers, threshold)
for group in groups:
    print(group)

这个函数会将数字列表numbers中相差不超过threshold的数字分到同一组。最后,函数返回每个分组的列表。



这个时候 我修改了一下数字

打印结果是:


FR:徐海涛(hunkxu)

相关推荐
Dovis(誓平步青云)13 分钟前
《静态库与动态库:从编译原理到实战调用,一篇文章讲透》
linux·运维·开发语言
IT学长编程13 分钟前
计算机毕业设计 基于Python的电商用户行为分析系统 Django 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·hadoop·python·django·毕业设计·课程设计·电商用户行为分析系统
Nan_Shu_61418 分钟前
学习:JavaScript(1)
开发语言·javascript·学习·ecmascript
zhangx1234_25 分钟前
C语言题目1
c语言·开发语言·数据结构
菜鸡儿齐26 分钟前
ThreadLocal介绍
java·开发语言
国服第二切图仔28 分钟前
Rust开发之自定义错误类型(实现Error trait)
开发语言·python·rust
雨中散步撒哈拉39 分钟前
14、做中学 | 初二上期 Golang集合Map
开发语言·后端·golang
Geoking.43 分钟前
PyTorch 中 Tensor 交换维度(transpose、permute、view)详解
人工智能·pytorch·python
咚咚王者1 小时前
人工智能之编程基础 Python 入门:第四章 条件循环与异常
人工智能·python
m0_748240255 小时前
Windows编程+使用C++编写EXE加壳程序
开发语言·c++·windows