我是来自c ++背景的python新手。我只是在尝试计算素数并且在迭代期间得到一个"设置改变的大小#34;错误。
python在迭代过程中如何知道set改变了大小?
是否可以在用户定义的对象中执行类似的操作?
答案 0 :(得分:5)
过滤集,列表或词组的pythonic方法是使用list [或dict]表达式
your_filtered_set = set([elem for elem in original_set if condition(elem)])
答案 1 :(得分:2)
使用用户定义的对象这样做很简单:只需在每次修改对象时设置一个标志,并在每次尝试检索项目时让迭代器检查该标志。
通常,您不应在迭代时修改集合,因为您可能会丢失项目或获取相同的项目两次。