[英]Transform specif for loop into list comprehension
有没有办法将以下(伪)代码片段转换为python列表理解?
for img in imgs:
for i in range(2):
for j in range(2):
final_img.append(correspondent_corner(img, i,j))
final_img.append(center_crop(img))
该代码的目的是提取对应于图像的四个角和中心作物的4个作物。 在不需要中心的情况下,我可以实现此列表理解的版本,但无法解决这种情况。
仅使用内置函数,列表推导和列表添加:
[item for sublist in [[correspondent_corner(img, i,j) for i in range(2) for j in range(2)] + [center_crop(img)] for img in range(5)] for item in sublist]
我是通过使用嵌套列表推导来完成内部循环的:
...[correspondent_corner(img, i,j) for i in range(2) for j in range(2)]...
然后将该结果附加到仅包含中心作物的列表中:
[[correspondent_corner(img, i,j) for i in range(2) for j in range(2)] + [center_crop(img)] for img in range(5)]
这给出了每个图像结果的嵌套列表,看起来像[[img0:00,img0:01,img0:10,img0:11,img0center],[img1:00...]]
。 它可与所述类型的另一个嵌套理解被展平[item for sublist in list for item in sublist]
,它看起来像
[item for sublist in [[correspondent_corner(img, i,j) for i in range(2) for j in range(2)] + [center_crop(img)] for img in range(5)] for item in sublist]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.