Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序,对列表内的元组升序和降序排序

1.python对IP地址列表排序

# -*- coding: utf-8 -*-import socket
listIP = ['10.5.11.1', '192.168.1.33', '10.5.2.4', '10.5.1.3', '10.5.11.13','10.5.11.12', '10.5.1.1', '10.5.1.2', '10.5.1.11', '10.5.1.13']listIP.sort(key=socket.inet_aton)
print(listIP)for i in listIP:print(i)

编译输出:

['10.5.1.1', '10.5.1.2', '10.5.1.3', '10.5.1.11', '10.5.1.13', '10.5.2.4', '10.5.11.1', '10.5.11.12', '10.5.11.13', '192.168.1.33']
10.5.1.1
10.5.1.2
10.5.1.3
10.5.1.11
10.5.1.13
10.5.2.4
10.5.11.1
10.5.11.12
10.5.11.13
192.168.1.33

2.python对列表去重

# -*- coding: utf-8 -*-
listIP = ['10.5.11.1', '192.168.1.33', '10.5.2.4', '10.5.1.3', '10.5.11.13','10.5.11.1', '10.5.1.1', '10.5.2.4', '10.5.1.11', '10.5.1.13']
listNew = list(set(listIP))
print(listNew)

编译输出:

['10.5.1.11', '192.168.1.33', '10.5.11.13', '10.5.11.1', '10.5.1.3', '10.5.1.1', '10.5.2.4', '10.5.1.13']

3.对IP地址与MAC组成的多个元组的列表,按照IP地址升序排序

"""=== coding: UTF8 ==="""
import socketlistIPMAC = [("192.168.10.200", "A41F229E48C4"),("192.168.10.153", "70B5E84839A1"),("192.168.10.10", "989096B800FD"),("192.168.10.101", "F46A29FB086B"),("192.168.10.65", "1C7D25424312")]"""
========================================
主函数功能测试
========================================
"""
if __name__ == '__main__':print("排序前:")for i in range(0, len(listIPMAC)):print(listIPMAC[i])# ------将VLAN已使用ip-mac按照ip升序排序------listIPMAC.sort(key=lambda item: socket.inet_aton(item[0]))print("按照IP地址升序排序后:")for i in range(0, len(listIPMAC)):print(listIPMAC[i])

测试效果:

排序前:
('192.168.10.200', 'A41F229E48C4')
('192.168.10.153', '70B5E84839A1')
('192.168.10.10', '989096B800FD')
('192.168.10.101', 'F46A29FB086B')
('192.168.10.65', '1C7D25424312')
按照IP地址升序排序后:
('192.168.10.10', '989096B800FD')
('192.168.10.65', '1C7D25424312')
('192.168.10.101', 'F46A29FB086B')
('192.168.10.153', '70B5E84839A1')
('192.168.10.200', 'A41F229E48C4')

下面对列表内的元组按照最后一项整数升序排列:

"""=== coding: UTF8 ==="""listInfo = [(1, '水果', 1, 99),(2, '蔬菜', 1, 22),(3, '书籍', 2, 88),(4, '电子', 2, 66)
]"""
========================================
主函数功能测试
========================================
"""
if __name__ == '__main__':print("排序前:")for i in range(0, len(listInfo)):print(listInfo[i])# 按照第3项升序排序listInfo.sort(key=lambda item: item[3])print("排序后:")for i in range(0, len(listInfo)):print(listInfo[i])

运行结果:

排序前:
(1, '水果', 1, 99)
(2, '蔬菜', 1, 22)
(3, '书籍', 2, 88)
(4, '电子', 2, 66)
排序后:
(2, '蔬菜', 1, 22)
(4, '电子', 2, 66)
(3, '书籍', 2, 88)
(1, '水果', 1, 99)

下面对列表内的元组按照最后一项整数降序排列:

# _*_coding:utf-8_*_
"""=== coding: UTF8 ==="""
from operator import itemgetterlistInfo = [(1, '水果', 1, 99),(2, '蔬菜', 1, 22),(3, '书籍', 2, 88),(4, '电子', 2, 66)
]"""
========================================
主函数功能测试
========================================
"""
if __name__ == '__main__':print("排序前:")for i in range(0, len(listInfo)):print(listInfo[i])# 按照第3项降序排序listInfo.sort(key=itemgetter(3), reverse=True)print("排序后:")for i in range(0, len(listInfo)):print(listInfo[i])

运行结果如下:

排序前:
(1, '水果', 1, 99)
(2, '蔬菜', 1, 22)
(3, '书籍', 2, 88)
(4, '电子', 2, 66)
排序后:
(1, '水果', 1, 99)
(3, '书籍', 2, 88)
(4, '电子', 2, 66)
(2, '蔬菜', 1, 22)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试官:不使用synchronized和lock,如何实现一个线程安全的单例?

单例,大家肯定都不陌生,这是Java中很重要的一个设计模式。稍微了解一点单例的朋友也都知道实现单例是要考虑并发问题的,一般情况下,我们都会使用synchronized来保证线程安全。那么,如果有这样一道面试题:不…

十六、Python操作excel(.xlsx)封装类MyPyExce

自己利用python编写的操作excel封装类 """ ================================================ Python模块:Python操作excel(.xlsx)封装类MyPyExcel ================================================ """import openpyxl from openpyxl.ut…

Mac OS X中配置Apache

我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境。 启动Apache设置虚拟主机启动Apache 打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密)。如下显示Apache的版本 接着输入 sudo apachectl st…

你真的理解零拷贝了吗?

作者:ksfzhaohui 来源:http://t.cn/ESALgwV前言从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常…

一、华为鸿蒙开发HUAWEI DevEco Studio下载、安装与配置

一、HUAWEI DevEco Studio下载 https://developer.harmonyos.com/cn/develop 二、HUAWEI DevEco Studio安装 解压后,双击安装包。 打开启动 DevEco Studio 三、DevEco Studio配置 DevEco Studio开发环境需要依赖于网络环境,需要连接上…

从JDK中,我们能学到哪些设计模式?

作者:肥朝 来自:肥朝(ID:feichao_java)结构性模式:适配器模式:常用于将一个新接口适配旧接口肥朝小声逼逼:在我们业务代码中经常有新旧接口适配需求,可以采用该模式。桥…

二、华为鸿蒙开发DevEco Studio运行第一个Hello World工程

1.打开DevEco Studio,创建一个Empty Ability(Java)工程,工程类型:Application 2.按照下图,Tools->Device Manager打开设备管理

解析url

2019独角兽企业重金招聘Python工程师标准>>> #include <stdio.h> #include <string.h> #include <stdlib.h>// 解析url&#xff0c;作为示例&#xff0c;很多情况没考虑&#xff0c;比如说user,pass之类的 int parse_url(char *url, char **serve…

面试官:讲一下Jvm中如何判断对象的生死?

但凡问到 JVM&#xff08;Java 虚拟机&#xff09;通常有 99% 的概率一定会问&#xff0c;在 JVM 中如何判断一个对象的生死状态&#xff1f;判断对象的生死状态的算法有以下几个&#xff1a;1、引用计数器算法引用计算器判断对象是否存活的算法是这样的&#xff1a;给每一个对…

三、华为鸿蒙HarmonyOS应用开发HUAWEI DevEco Studio实现页面跳转

在上一节二、华为鸿蒙开发DevEco Studio运行第一个Hello Word工程 基础上进行下面步骤。 在Java UI框架中,提供了两种编写布局的方式:在XML中声明UI布局和在代码中创建布局。这两种方式创建出的布局没有本质差别,为了熟悉两种方式,我们将通过XML的方式编写第一个页面,通过…

MVVM架构~前台后台分离的思想与实践

返回目录 MVVM是一种架构思想&#xff0c;是一种解决问题的方式&#xff0c;对于一个项目&#xff0c;一个功能模块&#xff0c;你可以选择使用&#xff2d;&#xff36;&#xff36;&#xff2d;的架构来实现&#xff0c;而knockoutjs只是实现MVVM的一种工具&#xff0c;它是在…

Java中所有锁介绍

在读很多并发文章中&#xff0c;会提及各种各样锁如公平锁&#xff0c;乐观锁等等&#xff0c;这篇文章介绍各种锁的分类。介绍的内容如下&#xff1a;1.公平锁 / 非公平锁2.可重入锁 / 不可重入锁3.独享锁 / 共享锁4.互斥锁 / 读写锁5.乐观锁 / 悲观锁6.分段锁7.偏向锁 / 轻量…

python深拷贝,浅拷贝,赋值引用

1.在python中&#xff0c;对象赋值实际上是对象的引用。当创建一个对象&#xff0c;然后把它赋给另一个变量的时候&#xff0c;python并没有拷贝这个对象&#xff0c;而只是拷贝了这个对象的引用 &#xff08;1&#xff09;直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变…

pjtool用到的数据库----oracle范畴

PL/SQL Developer 专门面向Oracle数据库存储程序单元的开发 PL/SQL&#xff1a;过程化SQL语言转载于:https://www.cnblogs.com/ejllen/p/3684890.html

如何让mysql索引更快一点

后端开发&#xff0c;公众号内容包括但不限于 python、mysql、数据结构和算法、网络协议、Linux。技术人怎能只有技术和代码&#xff0c;如果你对投资理财、保险&#xff0c;英语学习、读书写作有兴趣&#xff0c;都欢迎来公众号【谭某人】与我交流&#xff0c;你总会有些收获。…

将本地项目上传到码云(gitee)远程仓库

前提条件&#xff1a; 1、本地电脑上已经安装了 git客户端&#xff0c;未安装的&#xff0c;具体安装过程可以参考此安装链接&#xff1a;https://blog.csdn.net/ezreal_tao/article/details/81609883 2、用户已经在gitee码云上注册完成 具体操作步骤&#xff1a; 1、登录码云…

单线程的Redis为什么却能支撑高并发?

作者&#xff1a;Draveness原文链接&#xff1a;draveness.me/redis-io-multiplexing最近在看 UNIX 网络编程并研究了一下 Redis 的实现&#xff0c;感觉 Redis 的源代码十分适合阅读和分析&#xff0c;其中 I/O 多路复用&#xff08;mutiplexing&#xff09;部分的实现非常干净…

在Windows10上安装WSL使用binwalk命令

Windows 10 推出的WSL 功能可以协助我们直接使用binwalk 分析Windows 内的文件 一、WSL 准备 1、打开控制面板→应用→程序和功能→启动或关闭Windows 功能&#xff0c;打开“适用于Linux 的Windows 子系统”和“虚拟机平台”&#xff0c;随后需要重启。 2、打开Windows 10 自…

最详细的 IDEA调试教程

Debug用来追踪代码的运行流程&#xff0c;通常在程序运行过程中出现异常&#xff0c;启用Debug模式可以分析定位异常发生的位置&#xff0c;以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。在Intellij IDEA中使用好Debug&…

centos 修改ip地址

为什么80%的码农都做不了架构师&#xff1f;>>> 查看IP地址 1 登陆连接centos系统&#xff0c;输入 ifconfig 可以查看到当前本机的IP地址信息&#xff0c;如下图 临时设置IP地址 1 如本机为例&#xff0c;上面查询IP为1.117&#xff0c;输入 ifconfig eth0 &…