同时插入多个索引值进入列表的相关算法

已知两个列表arr1和arr2,arr2的索引列表比如del = [0, 1, 2],将如下坐标插入到 arr2的insert=[1, 3, 7] 相应元素后边。

# 参数表示:1.变道的index 2.表示插入相邻车道的值Car1  3.表示相邻车道的列表  4、表示中间车道的列表
def insert_function(del_index, insert_index, LC_list, middle_list):
    LC_num = len(del_index)   # 变道车辆数
    for i in range(LC_num):
        # 得出来的是变道的index
        index = del_index[i]
        Car1 = insert_index[i] + i   # 其实就是一个算法问题
        LC_list.insert(Car1 + 1, middle_list[index])  # insert_index[i] + 1相当于Car1+1

a=[1,4,2,1,5,6,9,0]
b=[1,0,1,2,3,4,5,6]

del_index=[1,2,3]
insert_index=[1,3,7]

insert_function(del_index, insert_index, a, b)
print(a)   # 验证成功:[1, 4, 0, 2, 1, 1, 5, 6, 9, 0, 2]
print(b)   # b列表没变

同时删除arr2的del相关索引值,代码如下:

# 同时删除列表中的不同index的元素
a=[1,4,2,1,5,6,9,0]
#删除列表中的元素,其所在的位置为[1,3,7]
del_index=[1,3,7]
tmp=[i for num,i in enumerate(a) if num not in del_index]
print(tmp)
print(f"最终结果:{tmp}")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值