解决列表中存放的电影字典信息模糊删除问题的方法分析
#方法1,通过将循环值与删除元素后下标的动态变化保持一致,可以使用模糊删除(可以通过下标逐个删除模糊匹配列表对应的元素)
# numbers=[1,2,2,4,4,2,3,4,5,2,3,4,2,3]
# i=0
# def remove(x):
# global i,numbers
# while i<=len(numbers)-1:
# if numbers[i]==x: #remove删除
# if x in numbers: #pop删除
# numbers.remove(x) #简单理解就是元素删除了,该元素对应的下标也被删除了,需要把该元素使用的下标也减掉1,把该下标留给后面的元素使用,保证下次循环还是使用该下标,当第二个元素,也就是下标为1的2被删除后,列表里面的元素会自动将被删除的2的元素的下标填上,后面的元素下标也会依次减一,所以在删除元素时,让循环值不变就可以避免遗漏掉遍历的元素了
# i-=1
# i+=1
# return print(numbers)
# remove(2)
#方法2,倒序遍历列表下标(可以使用remove和和pop删除),可以使用模糊删除(可以通过下标逐个删除模糊匹配列表对应的元素)
# def remove(x):
# numbers = [2, 3, 4, 2, 3, 4, 5, 3, 4, 3]
# i=len(numbers)
# while i>=0:
# i -= 1
# if numbers[i]==2:
# numbers.pop(i)
# # numbers.remove(x)
# return print(numbers)
# remove(2)
#方法3.死循环删除(只能通过remove删除),无法进行模糊删除(只能精确删除列表中存在的元素),没有循环条件,无法通过动态变量模拟下标变化来删除元素
def remove(x):
numbers=[2,3,4,2,4,5,3,4]
while True:
if x in numbers:
numbers.remove(x)
else:
break
return print(numbers)
remove(2)