简化数组处理并枚举为单行

问题描述

如何简化以下内容

imgs = []
for i,obj in enumerate(objlist):
    imgs.append(  foo(obj,f"img-{i}.png")  )

where objlist 一个对象数组 foo 是一种处理对象并保存图像的方法,接收对象和新文件名,它返回给定的相同名称

解决方法

这是向列表推导式的简单转换:

imgs = [foo(obj,f"img-{i}.png") for (i,obj) in enumerate(objlist)]

(顺便说一句,您忘记了 in 循环中的 for

此外,请参阅关于将嵌套 for 循环转换为单个列表推导式的一般问题的 this 答案。