大家新年快乐!
我初学 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
求指点代码还可以怎么优化,谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.