有两个长度相同的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数组就可以了把