1
什么是将一组整数转换为范围的最常用pythonic方式(对此问题已存在converting a list of integers into range in python)但有某种可接受的边距?将整数转换为范围但带有允许的孔
实施例,我们有: 1,2,3,4,5,10,11,15,45,46,47,75,76,80,85
因此通常我们将得到: {1,5},{10,11},{15,15},{45,47},{75,76},{80,80},{85,85}
但我们想允许如果上一个项目与下一个项目之间的差异大于20,则将创建下一个范围
因此,我们应该得到: {1,15},{45,47},{75, 85}
如果您可以从提供您当前的解决方案开始,我们可以确定是否有更多可用的Pythonic替代方案。 – chepner
如果您正在寻找对工作代码的评论/改进,那就是http://codereview.stackexchange.com上的主题 – jonrsharpe
我怀疑你是从“填充小于N的序列中的任何孔开始”,然后创建名单。这意味着 - 找到“相反”集 - 数字不包含;使用链接中的方法查找运行长度;删除运行长度大于N的那些;然后合并这两组。 – Floris