为什么谷歌Python风格指南 https://google.github.io/styleguide/pyguide.html更喜欢列表推导式和 for 循环而不是过滤器、映射和化简?
已弃用的语言功能:
...“使用列表推导式和 for 循环,而不是过滤器、映射和归约。”
给出的解释是:“我们不使用任何不支持这些功能的Python版本,因此没有理由不使用新样式。”
The 谷歌Python风格指南 https://google.github.io/styleguide/pyguide.html没有说
更喜欢列表推导式和 for 循环,而不是过滤器、映射和
减少
相反,完整的句子是:
使用列表推导式和 for 循环而不是过滤器和映射什么时候
无论如何,函数参数都是内联的 lambda。 (我的重点)
所以不建议您完全避免使用map
,例如——仅此而已
[expression(item) for item in iterable]
优于
map(lambda item: expression(item), iterable)
在这种情况下,很明显列表理解更加直接和可读。
另一方面,使用也没有什么问题map
像这样:
map(str, range(100))
而不是冗长的
[str(item) for item in range(100)]
它的启动性能良好:
In [211]: %timeit list(map(str,range(100)))
7.81 µs ± 151 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
In [215]: %timeit [str(item) for item in range(100)]
10.3 µs ± 3.06 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)