Python地图数据转换为列表/元组列表

2024-09-28 17:06:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个3D点列表,我正试图映射到一个列表,如下所示:

plot = map(lambda x: (x[0], x[1], x[2], voxelGrid[x]), data)

那不是我想要的。 其目的是plot[0]保存第一个数据索引中的所有值,plot[1]保存第二个索引中的所有值,依此类推。你知道吗

我可以通过对每个不同的值进行列表理解来实现这一点,但我觉得有更好的方法。你知道吗

数据

data = [(35, 35, 32), (35, 36, 33), (35, 38, 34)...] # xyz points

体素栅格是一个3D numpy数组,在上面的每个点上都包含一个值。你知道吗

我正在尝试获取以下输出:

plot = [(35,35,35),(35,36,38), (32,33,34), (voxelGrid[first point], voxelGrid[second point], voxelGrid[third point])]


Tags: 数据方法lambda目的map列表dataplot
3条回答

你想这样吗??你知道吗

>>> data = [(35, 35, 32), (35, 36, 33), (35, 38, 34)]
>>> zip(*data)
[(35, 35, 35), (35, 36, 38), (32, 33, 34)]
plot = zip(*[(x[0], x[1], x[2], voxelGrid[x]) for x in data])

zip(*)tuple()和生成器表达式一起使用:

zip(*data) + [tuple(voxelGrid[x] for x in data)]

相关问题 更多 >