【问题标题】:Simplify array processing and enumerate to a one-liner简化数组处理并枚举到单行
【发布时间】:2021-07-17 00:59:53
【问题描述】:

如何简化以下内容:

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

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

【问题讨论】:

    标签: python arrays simplify one-liner


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的,我在代码动画过程中丢失了“in”
    猜你喜欢
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2017-09-10
    相关资源
    最近更新 更多