有一组IP地址/前缀,以列表的形式存储,想对IP地址进行排序,实现IP地址/前缀划分为几段,然后依次按段排序。
排序方式有很多种,这里,我们可以用 sorted()
函数进行排序。 sorted()
函数的具体讲解详见:python 列表(list)排序
IP地址排序
ip = [
'1.1.1.1',
'168.0.1.0',
'1.0.1.0',
'168.0.0.8'
]
sorted_ip = \
sorted(ip, key=lambda x: (int(x.split('.')[0]),
int(x.split('.')[1]),
int(x.split('.')[2]),
int(x.split('.')[3])))
print(sorted_ip)
输出结果如下:
['1.0.1.0',
'1.1.1.1',
'168.0.0.8',
'168.0.1.0']
前缀排序
prefix = [
'1.1.1.1/24',
'168.0.1.0/18',
'1.1.1.1/20',
'168.0.0.8/20'
]
sorted_prefix = \
sorted(prefix, key=lambda x:(int(x.split('/')[0].split('.')[0]),
int(x.split('/')[0].split('.')[1]),
int(x.split('/')[0].split('.')[2]),
int(x.split('/')[0].split('.')[3]),
int(x.split('/')[1]),))
print(sorted_prefix)
输出结果如下:
['1.1.1.1/20',
'1.1.1.1/24',
'168.0.0.8/20',
'168.0.1.0/18']
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162759.html