一、循环列表,删除其中的元素
l1 = [1,2,3,4,5,6,7] 循环删除奇数位元素
1.正序循环删除,会出现越界情况,所以采用倒叙的方式删除
1 l1 = [1,2,3,4,5,6,7] 2 for i in range(len(l1) - 1,-1,-1): 3 if i % 2 == 1: 4 l1.pop(l1[i]) 5 6 print(l1)
二、循环字典,删除其中的元素
如果循环删除的话,编译器会报 RuntimeError: dictionary changed size during iteration
1 #错误代码 2 #dic = {‘k1‘:‘zhangsan‘,‘k2‘:‘lisi‘,‘k3‘:‘wangwu‘,‘name‘:‘xiaoming‘} 删除带k的key 3 dic = {‘k1‘:‘zhangsan‘,‘k2‘:‘lisi‘,‘k3‘:‘wangwu‘,‘name‘:‘xiaoming‘} 4 5 for i in dic: 6 if ‘k‘ in i: 7 del dic[i] 8 9 print(dic)
真确的方式,是把key放到一个列表中,然后根据列表元素进行删除
1 #正确的代码 2 dic = {‘k1‘:‘zhangsan‘,‘k2‘:‘lisi‘,‘k3‘:‘wangwu‘,‘name‘:‘xiaoming‘} 3 l1 = [] 4 for i in dic: 5 if ‘k‘ in i: 6 l1.append(i) 7 8 for i in l1: 9 del dic[i] 10 11 print(dic)