Python list 数据重组

文章讲述了在测试Dstar算法时,如何从激光雷达点云图的numpy数组形式转换为更便于后续处理的障碍物坐标列表,包括对空数组的处理和数据重构过程。
摘要由CSDN通过智能技术生成

事情的起因是这样的,在测试Dstar算法的时候,需要将激光雷达的点云图中的障碍物坐标输出出来,我使用如下命令输出:

for i in range(0,map_len):
    obstacle_point.append((i, np.where(map[i] == 255)))

这串命令简单易懂,但是输出的结果却有一个缺点:

[(0, (array([], dtype=int64),)), (1, (array([], dtype=int64),)), (2, (array([], dtype=int64),)), (3, (array([], dtype=int64),)), (4, (array([], dtype=int64),)), (5, (array([], dtype=int64),)), (6, (array([], dtype=int64),)), (7, (array([], dtype=int64),)), (8, (array([], dtype=int64),)), (9, (array([], dtype=int64),)), (10, (array([], dtype=int64),)), (11, (array([], dtype=int64),)), (12, (array([], dtype=int64),)), (13, (array([], dtype=int64),)), (14, (array([], dtype=int64),)), (15, (array([], dtype=int64),)), (16, (array([], dtype=int64),)), (17, (array([], dtype=int64),)), (18, (array([42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (19, (array([42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (20, (array([34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (21, (array([34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]),)), (22, (array([34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]),))

i是固定的,为了将数据转变成好看舒服且适合下一步调用的形式:

[(18, 42), (18, 43), (18, 44), (18, 45), (18, 46), (18, 47), (18, 48), (18, 49), (18, 50), (19, 42), (19, 43), (19, 44), (19, 45), (19, 46), (19, 47), (19, 48), (19, 49), (19, 50), (20, 34), (20, 35), (20, 36), (20, 37), (20, 38), (20, 39), (20, 40), (20, 41), (20, 42), (20, 43), (20, 44), (20, 45), (20, 46), (20, 47), (20, 48), (20, 49), (20, 50), (21, 34), (21, 35), (21, 36), (21, 37), (21, 38), (21, 39), (21, 40), (21, 41), (21, 42), (21, 43), (21, 44), (21, 45), (21, 46), (21, 47), (21, 48), (21, 49), (21, 50), (22, 34), (22, 35), (22, 36), (22, 37), (22, 38), (22, 39), (22, 40),.......

可以做处理,就可以将数据变成我想要的格式:

obstacle_result = []
for itemmm in obstacle_point:
    row_number = itemmm[0]
    row_indices = itemmm[1][0]
    for col_index in row_indices:
        obstacle_result.append((row_number, col_index))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值