在迭代期间设置更改的大小

时间:2014-07-07 12:36:31

标签: python

我是来自c ++背景的python新手。我只是在尝试计算素数并且在迭代期间得到一个"设置改变的大小#34;错误。

python在迭代过程中如何知道set改变了大小?

是否可以在用户定义的对象中执行类似的操作?

2 个答案:

答案 0 :(得分:5)

过滤集,列表或词组的pythonic方法是使用list [或dict]表达式

your_filtered_set = set([elem for elem in original_set if condition(elem)])

答案 1 :(得分:2)

使用用户定义的对象这样做很简单:只需在每次修改对象时设置一个标志,并在每次尝试检索项目时让迭代器检查该标志。

通常,您不应在迭代时修改集合,因为您可能会丢失项目或获取相同的项目两次。