2019.12.17霍格沃兹测试学院一道题
代码如下:
1 # coding: utf-8 2 """ 3 @File:ck01.py 4 @E-mail:chenshengkai@vip.qq.com 5 @Time:2019-12-17 8:31 6 @Author:Nobita 7 @Version:1.0 8 @Desciption:None 9 """ 10 11 import re 12 13 #题目:要求返回一个ip数组,并且按照ip最后一位排序返回 14 string = "192.0.0.1?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.1" 15 ''' 16 思路分析: 17 1.首先去除特殊符号后返回一个列表str_list 18 2.判断列表里的每个元素是否符合ip的格式,不符合去除 19 3.得到满足ip格式的新列表new_list,按照ip最后一位排序返回result 20 ''' 21 22 str_list = re.split('\?!|!|\?', string) 23 '''通过正则去除特殊符号,返回str_list''' 24 new_list = [] 25 for ip in str_list: 26 ip_list = ip.split('.') 27 if len(ip_list) == 4: 28 for i in ip_list: 29 if eval(i) > 255 or eval(i) < 0: 30 break 31 else: 32 new_list.append(ip) 33 ''' 34 思路分析: 35 1.遍历列表str_list,判断ip是否为X.X.X.X格式。 36 2.满足ip格式,再判断里面的数值是否在0-255之间。 37 3.均满足则追加这个ip到新的列表new_list中。 38 ''' 39 40 result = sorted(new_list, key=lambda x: x[-1]) 41 '''对列表net_list按照ip最后一位数字进行排序''' 42 print(result)