大家新年快乐!
我初学 Python 一个星期左右,求优化下面这个函数,此函数的作用在于生成 IP 列表:
def parse_ip(ip):
ips = []
if '-' in ip:
segments = ip.split(".")
seg_index = 0
for segment in segments:
if '-' in segment:
prefix = ".".join(segments[:seg_index])
suffix = ".".join(segments[seg_index+1:])
start, end = map(int, segment.split("-"))
new_ips = [".".join(filter(lambda s: s, map(str,[prefix, ip_segment, suffix]))) for ip_segment in range(start, end +1)]
for new_ip in new_ips:
ips += parse_ip(new_ip)
break
seg_index += 1
else:
ips += [ip]
return ips
if __name__ == "__main__":
print "\n".join(parse_ip("192.168.1-2.1-10"))
输出的结果是:
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.1.7
192.168.1.8
192.168.1.9
192.168.1.10
192.168.2.1
192.168.2.2
192.168.2.3
192.168.2.4
192.168.2.5
192.168.2.6
192.168.2.7
192.168.2.8
192.168.2.9
192.168.2.10
求指点代码还可以怎么优化,谢谢!