像下面示例中的单行代码或 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/