从返回的字符串中提取IP地址到列表中,并按IP的最后一位进行排序

从返回的字符串中提取IP地址到列表中,并按IP的最后一位进行排序_第1张图片
朋友分享的一道面试侧开的题,用python记录一下。

#encoding=utf-8
string ="192.0.0.1?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.1!192.168.0.105"
#split后返回的res是个列表
res = string.replace('?!',',').replace('!',',').replace('?',',').split(",")
#lambda中的x表示列表的第一个元素
#x.split('.')是把x中的元素按.进行拆分,拆分后形成一个新的列表,取新列表的最后一位进行排序。
print(sorted(res,key = lambda x:(int(x.split('.')[-1]))))

备注:这里主要用到了split和sorted。开始想到比较复杂,其实两行代码就解决了。
关于sorted的用法,菜鸟中介绍比较详细。贴在这共享。
从返回的字符串中提取IP地址到列表中,并按IP的最后一位进行排序_第2张图片
还有个例子,可以让大家更好的理解lambda函数在此的用法。

#按学生的年龄进行排序
students = [('john','A',15),('lucy','B',12),('jk','A',11),('lily','B',16)]
print(sorted(students,key=lambda x:x[2]))

你可能感兴趣的:(Python,列表,python)