我认为这可能与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'])]
Tags:
每当您感到被一个只起作用的方法所约束时,您可以使用
or
/and
的行为来实现您想要的语义。这种技术有时对于在
lambda
(或其他限制为单个表达式的情况)中实现本来不可能实现的事情非常有用。它是最“可读”还是“Python”是有争议的:-)您可以使用set difference operator,如下所示
相关问题 更多 >
编程相关推荐