You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Python集合中移除多个元素?调用discard方法移除元素失败求助

问题分析与解决方法

你代码里的问题出在set.discard()的用法上:这个方法只能接收单个元素作为参数,而你传的是一个生成器表达式x for x in a if len(x.split())<9——集合里根本不存在这个生成器对象,所以discard找不到要移除的元素,自然不会有任何效果。

给你两种可行的解决方式:

方式一:遍历符合条件的元素逐个移除

a = {'ab', 'z x c v b n m k l j h g f f d s a a', 'q w e r t y u i o p'}
# 转成列表遍历,避免遍历原集合时修改集合导致迭代异常
for x in list(a):
    if len(x.split()) < 9:
        a.discard(x)
print(a)

方式二:用集合推导式生成新集合(更简洁)

a = {'ab', 'z x c v b n m k l j h g f f d s a a', 'q w e r t y u i o p'}
# 直接筛选出符合条件的元素组成新集合
a = {x for x in a if len(x.split()) >= 9}
print(a)

两种方式执行后,都会得到你期望的输出:

{'z x c v b n m k l j h g f f d s a a', 'q w e r t y u i o p'}

内容的提问来源于stack exchange,提问作者Hello World

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 23:37:45