如何删除列表中的所有实例名称?

15 浏览
0 Comments

如何删除列表中的所有实例名称?

可能是重复的:从Python列表中删除所有出现的值\n

mylist = ['dogs', 'cats', 'cats']

\n如果我输入mylist.remove(\'cats\'),它只会删除列表中的一个cats,但是我想要删除列表中的所有cats而不使用循环,因为循环会导致我想要的方式崩溃。\n编辑:这有点难以解释,例如,它会崩溃,因为我正在尝试开发一个模块来从列表中删除相同的元素。mylist[i]首先返回dogs,我删除它,但在另一个循环后,mylist[i]不再返回dogs,而是返回cats。这就是为什么我想要在一个语句中删除所有实例,而不考虑索引循环。

0
0 Comments

如果不需要修改提供的列表副本,建议使用filter函数。

>>> x = itertools.ifilter(lambda x: x != 'foo', ['foo', 'foo', 'bar'])
>>> x
<itertools.ifilter object at 0xb70ba2ec>
>>> list(x)
['bar']

在Python中,列表推导(或生成器表达式)更清晰、更符合习惯用法。

0
0 Comments

问题出现的原因是因为上述代码只能删除列表中的元素,而不能删除列表中的实例名。

解决方法是使用del语句来删除列表中的所有元素,从而达到删除实例名的目的。

具体解决方法如下:

x = ['dog', 'cat', 'cat']
del x[:]

上述代码中的del x[:]语句可以删除列表x中的所有元素,从而实现删除实例名的目的。

0
0 Comments

如何删除列表中的所有实例名称?

问题的原因是想要从一个列表中删除所有指定的实例名称。

解决方法是使用列表推导式创建一个新的列表,避免使用显式循环。代码如下:

mylist = [item for item in mylist if item != 'cats']

注意,如果想要就地修改列表,可以使用mylist[:] = ...,但会稍微降低效率(需要进行额外的复制操作)。

0