python - 如何使用列表理解从列表中的集合中删除特定元素

标签 python set

我认为这可能与 set 是 mutable 有关。

基本上,我可以使用 set.discard(element) 从集合中删除一个元素。但是,set.discard(element) 本身返回 None。但我想获得更新集的副本。例如,如果我有一个集合列表,如何使用列表推导操作方便地获取更新的副本?

示例代码:

test = [{'', 'a'}, {'b', ''}]
print [x.discard('') for x in test]
print test

会回来

[None, None]
[set(['a']), set(['b'])]

最佳答案

每当您觉得受限于只能就地工作的方法时,您可以使用 or/and 的行为来实现您想要的语义。

[x.discard('') or x for x in test]

这种技术有时可用于在 lambda (或其他限制为单个表达式的情况)中实现原本不可能的事情。无论是最“可读”还是“pythonic”都值得商榷:-)

关于python - 如何使用列表理解从列表中的集合中删除特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22877032/

相关文章:

set - 奇怪的 Common Lisp 交叉行为

python - 如何测试 Python 中唯一项目的多个集合?

python - 在圆 OpenCV 内绘制文本

python - 如何正确提取 Keras ConvNet 权重矩阵以在 Excel 中使用?

c++ - 我如何将 STL 集作为函数参数传递

objective-c - 使用 "member"获取 Set 中的元素

extjs - 如何以编程方式设置选项卡(按钮)的隐藏属性

python - 当索引包含重复数据时添加缺失的 pandas DataFrame 行

python - 确定数组是否已排序的最快方法是什么?

python - 如何从 python(django) 中的字符串中分离数字?