2 gd438499123 gd438499123 于 2016.09.26 18:26 提问

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

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

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

6个回答

feng1790291543
feng1790291543   Ds   Rxr 2016.09.26 18:26

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

zuowei_zhao
zuowei_zhao   2016.09.26 18:32

直接访问目录的url文件

qq_29594393
qq_29594393   Ds   Rxr 2016.09.26 19:12

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

qq_29594393
qq_29594393   Ds   Rxr 2016.09.26 19:19
 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
oyljerry
oyljerry   Ds   Rxr 2016.09.26 21:37

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

qq258641620
qq258641620   2016.09.27 12:42
 [x for x in L if len(x) > 2]
Csdn user default icon
上传中...
上传图片
插入图片