我认为这可能与 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/