以后会遇见的坑
-
lst = [1,2] for i in lst: lst.append(3)#每次增加 lst 的长度越长 所以一直执行 print(lst) # 死循环 #删除列表的坑 lst = [1,2,3,4] for i in lst: lst.pop() print(lst) #结果为:[1,2] 当i 为1的时候 删除最后一个元素4; i为2的时候删除3 结束 lst = [1,2,3,4] for i in lst: lst.pop(0) print(lst) #结果为:[3,4] 当i 值为第一个元素 也就是1 删除第一个元素1,此时列表为[2,3,4] 此时i 为第二个元素 也就是3 删除第一个元素 也就时2 这是列表为[3,4] 此时列表为两个元素 不能取第三个元素 结束 lst = [1,2,3,4] for i in lst: lst.remove(i) print(lst) #结果为:[2,4] 当i 值为第一个元素 也就是1 删除第i个元素1,此时列表为[2,3,4] 此时i 为第二个元素 也就是3 删除第i个元素 也就时2 这是列表为[2,4] 此时列表为两个元素 不能取第三个元素 结束
-
成功删除的方式
-
lst=[1,2,3,4,6] for i in range(len(lst)) lst.pop() print(list) #结果为:[] 获取列表长度 来进行删除 lst=[1,2,3,4,6] for i in range(len(lst)-1,-1,-1) del lst[i] print(lst) #结果为:[] i为索引值 倒序删除 lst = [1,2,3,4,6] for i in range(len(lst)): del lst[-1] print(lst) #结果为:[] 获取列表长度 每次删除最后一个 执行i次 lst = [1,2,3,4,5,6] lst1 = lst.copy() for i in lst1: lst.remove(i) print(lst) #结果为:[] 浅拷贝 lst1 用lst1进行迭代 但 删除lst元素 两个互不影响
-
-
删除字典的坑
-
dic=dict.fromkeys("12345",1)# 字典的迭代的时候改变了原来的大小(不能加不能删) for i in dic dic[i]="123" print(dic) #结果为:{'1': '123', '2': '123', '3': '123', '4': '123', '5': '123'} 没有改变字典的大小 dic = dict.fromkeys("12345",1) dic1 = dic.copy() for i in dic1: dic.pop(i) print(dic) #浅拷贝 dic 生成dic1 迭代dic1 但删除dic 结果为:{} # 集合和字典都是迭代的时候不能改变原来的大小
-