如何使用List Comprehensions实现以下代码?
for r in range(row):
for c in range(column):
print [r,c]
THX
答案 0 :(得分:0)
找到它:
[[print([r,c]) for c in range(column)] for r in range(row)]
谢谢mgilson。没有喝足够的咖啡,忘了怎么说'嵌套'#39;用英语和我的母语:)
<强>更新强> 我会坚持使用DavidG的解决方案:
[ax.axis('off') for ax in axes.flatten()]
对于此解决方案,我可以减少以下代码:
# Plot the result
row, column = [3, 2]
figure, axes = plt.subplots(row, column, figsize=(15, 10))
figure.tight_layout()
axes[0,0].imshow(image)
axes[0,0].set_title('Original Image', fontsize=15)
axes[0,0].axis('off')
axes[0,1].imshow(img_solution, cmap='gray')
axes[0,1].set_title('Expected result', fontsize=15)
axes[0,1].axis('off')
axes[1,0].imshow(gradx, cmap='gray')
axes[1,0].set_title('gradx', fontsize=15)
axes[1,0].axis('off')
axes[1,1].imshow(grady, cmap='gray')
axes[1,1].set_title('grady', fontsize=15)
axes[1,1].axis('off')
axes[2,0].imshow(mag_binary, cmap='gray')
axes[2,0].set_title('mag_binary', fontsize=15)
axes[2,0].axis('off')
axes[2,1].imshow(dir_binary, cmap='gray')
axes[2,1].set_title('dir_binary', fontsize=15)
axes[2,1].axis('off')
通过这几行:
# Plot the result
row, column = [3, 2]
figure, axes = plt.subplots(row, column, figsize=(15, 10))
figure.tight_layout()
list_title_image = [['Original Image',image],
['Expected result', img_solution],
['gradx', gradx],
['grady', grady],
['mag_binary', mag_binary],
['dir_binary', dir_binary] ]
plot_it = [ ( ax.imshow(img[1], cmap='gray'), ax.set_title(img[0], fontsize=15), ax.axis('off') )
for ax, img in zip(axes.flatten(), list_title_image)]
ax.axis(&#39; off&#39;)是matplotlib子图的数组
答案 1 :(得分:0)
我可能不会使用评论中的列表理解建议,因为这确实会填充其他人指出的None
列表。
在你提供的答案中看到额外的代码表明for循环可能是要走的路,并且很多更具可读性IMO:
所以替换你的列表理解:
plot_it = [ ( ax.imshow(img[1], cmap='gray'), ax.set_title(img[0], fontsize=15), ax.axis('off') )
for ax, img in zip(axes.flatten(), list_title_image)]
使用:
for ax, img in zip(axes.flatten(), list_title_image):
ax.imshow(img[1], cmap='gray')
ax.set_title(img[0], fontsize=15)
ax.axis('off')