[英]Set changed size during iteration
我是来自c ++背景的python新手。 我只是在玩试图计算素数的集合,并收到“集合在迭代过程中更改大小”错误。
python在内部如何知道集合在迭代过程中更改的大小?
是否可以在用户定义的对象中执行类似的操作?
过滤集合,列表或字典的pythonic方法是使用列表[或dict]表达式
your_filtered_set = set([elem for elem in original_set if condition(elem)])
使用用户定义的对象这样做很简单:每次修改对象时都设置一个标志,并让迭代器在每次尝试检索项目时都检查该标志。
通常,在迭代集合时,请勿修改集合,因为这样可能会丢失一个项目或两次获得相同的项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.