【发布时间】:2015-10-16 20:18:52
【问题描述】:
想要减少列表整合并减少循环和内存使用,有什么方法可以减少两个循环以构建最终路径,将其转换为单个列表整合?
def build_paths(domains):
http_paths = ["http://%s" % d for d in domains]
https_paths = ["https://%s" % d for d in domains]
paths = []
paths.extend(http_paths)
paths.extend(https_paths)
return paths
在这种情况下,预期的结果是优化的列表理解,从三个列表引用(http_paths、https_paths、paths)减少到一行,如以下示例结构:
def build_paths(domains):
return [<reduced list comprehesion> for d in domains]
在这两种情况下,运行以下测试:
domains = ["www.ippssus.com",
"www.example.com",
"www.mararao.com"]
print(build_paths(domains))
预期输出,与列表顺序无关:
< ['http://www.ippssus.com', 'http://www.example.com', 'http://www.tetsest.com', 'https://www.ippssus.com', 'https://www.example.com', 'https://www.tetsest.com']
【问题讨论】:
-
很好的解决方案!这取决于导入语句,但这是一个好方法!为了简单起见,我将尝试 Martjin 提出的解决方案。谢谢!