python - 访问嵌入列表的相同索引
问题描述
我有一个编码如下的图像:image[RGBchannel][y][x]
我想访问RGBchannel
每个索引的三元组。这是我目前正在使用的方法。有没有更有效的写法?
image = [[[1, 2, 3], [4,5,6]], [[7,8,9], [10, 11, 12]], [[13,14,15], [16,17,18]]]
for y in range(len(image[0]):
for x in range(len(image[0][0]):
rgb = []
for channel in range(len(image)):
rgb.append(image[channel][y][x])
print rgb
输出是:
[1, 7, 13]
[2, 8, 14]
[3, 9, 15]
[4, 10, 16]
[5, 11, 17]
[6, 12, 18]
在不导入任何 3rd 方库或导入任何内部模块的情况下,有没有更好的方法来做到这一点?
解决方案
那这个呢:
image = [[[1, 2, 3], [4,5,6]], [[7,8,9], [10, 11, 12]], [[13,14,15], [16,17,18]]]
result = [x for z in zip(*image) for x in zip(*z)]
print(result)
输出:
[(1, 7, 13), (2, 8, 14), (3, 9, 15), (4, 10, 16), (5, 11, 17), (6, 12, 18)]
推荐阅读
- javascript - 在Javascript中将变量从一个脚本检索到另一个脚本
- sql - 从数据库中获取数据并显示在服务器上
- c - 从 MPI 中的文本文件中读取
- powerbi - 如果我想将 Power BI 函数用作报表的轴值,它的返回类型应该是什么
- r - 在单独的数据框中使用日期范围过滤 - R
- javascript - 尝试从 fullcalendar 文档中获取 eventRender 中显示的工具提示
- api - 错误:连接 ECONNREFUSED 127.0.0.1:8000
- .net - 日期时间转换格式错误(日光?)
- reactjs - 使用 react-leaflet-markercluster 时出现错误“TypeError:超级表达式必须为 null 或函数,而不是对象”
- c# - SQL 查询在 SQL Server 和 C# 中返回的结果不同