python - 何时使用 for 循环与单行循环

标签 python for-loop

像下面示例中的单行代码或 for 循环之间在性能上有什么区别吗?这是我用来做事情的代码片段:

# convert to integer, subtract 1, and change to 0 if number is < 0
tile_ids =  map(lambda x: max(int(x)-1, 0), child[0].text.split(','))

这样做更好,还是写下来:

for tile_id in child[0].text.split(','):
    tile_id = int(tile_id) - 1
    if tile_id < 0:
        tile_id = 0

此外,是否有理由使用其中一种而不是另一种?

最佳答案

对于这种特定情况,使用 map 而不是 for 循环,您不会获得太多性能提升。可能,使用 map 比后一种方法要糟糕一些,因为您隐式地使用了“额外的东西”,在这种情况下,这些东西并不是很有用。

当您有能力并行化任务时,“映射方法”会非常有用。在这种情况下,您肯定可以获得比普通 for 循环更好的性能。

由于可读性,我更喜欢第二个版本。另一种方法是使用列表理解:

title_ids = [max(int(x)-1,0) for x in child[0].text.split(',')]

关于python - 何时使用 for 循环与单行循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307708/

相关文章:

java - 如何将运行者添加到结果数组中

python - 使用 Django 1.9 和 Solr 6.1 创建索引时出现日期数学字符串中的无效日期错误

python - 是否可以根据不同的输入信息创建函数?

Javascript for 循环问题

java - java android开发中for循环跳转到最后一个数字

Javascript 数组效率低下的问题

python - Pandas 切片不包括结束

python - 通过循环将多个列表组装成一个列表

python - 如何在生产中部署 Bottle Web 应用程序?

java - 无法在 Java 中使用两个 for 循环单独取出