微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据其他对一个列表进行排序

如何解决根据其他对一个列表进行排序

我有以下两个列表:

list_ip = [10.100.1.100,10.100.1.30,10.100.1.110,10.100.1.40]
list_host = [host1,host2,host3,host4]

我需要的是根据 list_host 上的 IP 地址排序对 list_ip 进行排序。

预期输出

[host2,host4,host1,host3]

我该如何开始?我可以使用哪个功能

解决方法

为了排序,您可以将 2 个列表压缩在一起,将键作为元组中的第一个元素,然后打印排序结果中的第二个元素

如果您只使用 10.100.1.x,那么您只需要提取 x(通过 split & int 转换)作为键。如果您正在处理许多不同的子网,是的,您需要转换为 ipaddress.IPV4Address 对象,这些对象按数字值而不是字符串表示自然排序。

print([y[1] for y in sorted(zip([int(x.split('.')[-1]) for x in list_ip],list_host))])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。