And*_*ore 4 python list-comprehension
寻找减少列表的压缩,减少循环和内存使用,有一些方法可以减少两个循环来构建最终路径,将其转换为单个列表压缩?
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
Run Code Online (Sandbox Code Playgroud)
在这种情况下,预期的结果是一个优化的列表comprehesion,从三个列表的引用(减少http_paths,https_paths,paths)成一个单一的一条线,如以下示例所示的结构:
def build_paths(domains):
return [<reduced list comprehesion> for d in domains]
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,运行以下测试:
domains = ["www.ippssus.com",
"www.example.com",
"www.mararao.com"]
print(build_paths(domains))
Run Code Online (Sandbox Code Playgroud)
预期输出,与列表顺序无关:
< ['http://www.ippssus.com', 'http://www.example.com', 'http://www.tetsest.com', 'https://www.ippssus.com', 'https://www.example.com', 'https://www.tetsest.com']
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 14
添加第二个循环:
['%s://%s' % (scheme, domain) for scheme in ('http', 'https') for domain in domains]
Run Code Online (Sandbox Code Playgroud)
这将http首先构建所有URL,然后构建httpsURL,就像您的原始代码一样.
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |