如何用Python分割不连续的有序列表

本文最后更新于2016年6月7日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

同事需要实现一个功能:从指定IP段中排除某些IP或IP段,最后得到一个类似于IP区间的结果格式。比如:

正文:
理清思路:

将CIDR格式的IP段转换成大整数区间的格式,然后再从这个大区间中剔除「要排除的小区间」,然后将区间的首尾整数转换成IP地址的格式。

提取出的问题:

其中碰到的一个问题就是,将一个「不一定连续」的有序列表转换成「一个或多个」连续有序列表。

参考解答:

实现一个函数myfunc,传入不一定连续的列表,返回一个包含多个区间的列表,比如:

myfunc([2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20])

返回:

[(2,5), (12,17), 20]

==

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/2728.html

《如何用Python分割不连续的有序列表》上有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注