在使用for 循环过程中,有多个元素符合条件删除时:
不可以在循环中直接对列表删除(会因后位元素的前移,导致索引改变,结果错误)
循环中对字典进行删除则会直接报错
所以再删除时尽量不要在循环中,可以创建一个新列表接收要删除元素
然后循环新列表,用旧字典或列表的删除元素的方法(不是用索引的方法)
把新列表遍历(要删除元素),旧列表.remove(元素),del 旧字典[删除键]
列表删除的方法
lis=[1,2,3,4,5,6,7,8,9] #删除其中的奇数
del_lis=[]
for i in lis:
if i%2==1:
del_lis.append(i) #要删除元素加入新列表
print(del_lis) #>>>[1,3,5,7,9]
for i in del_lis:
print(i) #>>>1 3 5 7 9
lis.remove(i) #相当于 lis.remove[1]....
print(lis) #输出删除后的列表
1 #字典删除的方法
2 dic = {'k1': 'del', 'k2': 'del', 's1': 'keep'}
3 dic_del_list = []
4 for k in dic: #字典循环出来的是键
5 if 'k' in k:
6 dic_del_list.append(k) #把符合条件的键加入列表
7 print(dic_del_list) #>>>[k1,k2]
8 for el in dic_del_list: #循环要删除的键的列表
9 print(el) #>>> k1 k2
10 del dic[el] #相当于dic[k1] dic[k2]
11 print(dic) #输出删除后的字典
字符串内容类型判断:
.isdigit():判断str元素是否只有十进制整数组成(小数3.14,及叁,Ⅲ这类都不可以,但是可以检测bytes类型(b'3610'.isdigit()))
.isalpha():判断str元素是否只包含字母(中文也支持)
.isalnum():判断str元素是否由数字,字母(包括中文)