猿问

自己写了个删除列表中非int型对象的方法,但是运行结果很怪异。

def my_del(li):
    for index,value in enumerate(li):
        if isinstance(value, int):
            pass
        else:
            del li[index]

执行后却不能删除完毕,要执行多次才能删除掉非int型的对象。

Zombee
浏览 1513回答 7
7回答

一毛钱

你可以生成一个副本,用副本去做循环,查找元素,然后删除原来的数组。或者你可以用倒序去删除它,如果按照你这样的删除,list结构发生了变化,python不会报错但是也达不到自己的要求的效果,如果是java或者C#直接回抛出异常
随时随地看视频慕课网APP

相关分类

Python
我要回答