我想在列表中标识连续数字组,以便:
myfunc([2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20])
Run Code Online (Sandbox Code Playgroud)
返回:
[(2,5), (12,17), 20]
Run Code Online (Sandbox Code Playgroud)
并且想知道最好的方法是什么(特别是如果在Python中有内置的东西).
编辑:注意我原本忘了提到个别数字应该作为单独的数字返回,而不是范围.
我有这些范围:
7,10
11,13
11,15
14,20
23,39
Run Code Online (Sandbox Code Playgroud)
我需要执行重叠范围的并集以给出不重叠的范围,因此在示例中:
7,20
23,39
Run Code Online (Sandbox Code Playgroud)
我在Ruby中完成了这个,我已经在数组中推动了范围的开始和结束并对它们进行了排序,然后执行重叠范围的并集.有什么快速的方法在Python中执行此操作?
谢谢