根据b中的值来决定是否删除a中的值,但删除后无法对应

问题遇到的现象和发生背景

有两个长度相同的list a和b,其中的数值一一对应,我想根据b中的值来决定是否删除a中的值,但是删除了a中的值之后两个list长度不一致了,没法对应

a = [1, 4, 7, 9, 10]
b = [2, 3, 5, 6, 8]
for i in range(len(a)):
    if b[i] > 3:
        a.remove(a[i])
print(a)
运行结果及报错内容
    a.remove(a[i])
IndexError: list index out of range
我想要达到的结果

根据b中的值来决定是否删除a中的值


a = [1, 4, 7, 9, 10]
b = [2, 3, 5, 6, 8]
ret = []
for i in range(len(a)):
    if b[i] > 3:
        ret.append(a[i])
for x in ret:
    a.remove(x)
print(a)

那你为什么不换一种思路呢?将需要的元素放进一个新的列表,不可以吗

a = [1, 4, 7, 9, 10]
b = [2, 3, 5, 6, 8]
list1 = []
for i in range(len(a)):
    if b[i] <= 3:
        list1.append(a[i])
print(list1)

那就保留原始的a数组,重新创建一个c数组,令c数组等于a数组,修改c数组就可以了把