Python列表删除指定元素求助:drop方法无效如何解决?
问题原因及解决办法
你用的drop()是pandas库中DataFrame/Series的专属方法,Python原生列表根本没有这个方法,所以执行会报错。下面给你几种针对列表的有效删除方式:
方法一:列表推导式(推荐,简洁高效)
直接筛选出不需要删除的元素,生成新列表:
listName = ['column1','column2','column3','column4'] # 把要删除的元素存成集合,查找速度比列表快 to_remove = {'column2', 'column3'} listName = [item for item in listName if item not in to_remove]
执行后listName会变成['column1', 'column4']。
方法二:反向遍历删除(原地修改列表)
如果需要直接修改原列表,不要生成新列表,可以反向遍历后删除元素(正向遍历删除会导致索引错乱,漏掉元素):
listName = ['column1','column2','column3','column4'] to_remove = ['column2','column3'] # 反向遍历原列表 for item in reversed(listName): if item in to_remove: listName.remove(item)
方法三:用filter函数过滤
和列表推导式逻辑类似,用lambda表达式过滤元素:
listName = ['column1','column2','column3','column4'] to_remove = {'column2','column3'} listName = list(filter(lambda x: x not in to_remove, listName))
内容的提问来源于stack exchange,提问作者silent_hunter
相关产品推荐
相关产品推荐

