python 2.7 :遍历list 无删除指定元素

如图 我想删除list里面长度为1或2的元素。为什么”P“和”ye“无法被搜寻到?图片说明

结果中没有打印 打印出'P'和'ye'
图片说明

匹配做的有问题吧,大小写注意

直接访问目录的url文件

错误原因,你每删除一个元素,L的长度减一 ,但是在每次循环的时候都会计算L 的长度L,而且 i会自动加一 ,那么有两个连续的可以被删除的数的话,就会跳过第2个,只会删除第一个,由于第二个的数组长度减一,那接下来所有的元素的下表都会减一,而i又加1,也就是会跳过一个

 L=['of','p','dsgsdg','hgh','dfh','sg','hf']

def delect(L):
    "递归函数"
    for i in L:
        if len(i)==1 or len(i)==2 :
            L.remove(i)
            delect(L)
delect(L)
print L

直接用filter把不符合条件的元素过滤掉

 [x for x in L if len(x) > 2]