two first result in double
If I add 

```
[s for s in select]
```

between select and for, like this :

```
select = Test.select()
[s for s in select]
for s in select:
    print(s.id)
    Test.update(name=0).where(Test.id==s.id).execute()
```

I haven't this problem...

I don't understand why ?!
 @dkmatt0 

PEP-XXX (I don't remember which one) or just sane idea:
You should not modify object while you iterate over it. And you should be even more careful with lazy-objects.

Is this bug, or not, the better way to perform this logic (as I think):

_(pseudocode)_

```
with transaction
    id_list = list(select(ids))
    for every id in id_list
        perform operation and save
```

Something similar you do in your example with `[s for s in select]`: you consume laziness and perform operations related to static dataset.

But, again, its my IMHO.
 See: 
- https://github.com/coleifer/peewee/issues/12#issuecomment-5614404
- https://github.com/coleifer/peewee/issues/81
 OK perfect ! Thank you :+1: 

Hi, (I'm french, sorry for poor english...)
I make this code for testing :

```
from peewee import *
import datetime

class Test(Model):
    name = TextField(null=True)

Test.create_table()
Test.create(name='a')
Test.create(name='b')
Test.create(name='c')
Test.create(name='d')
Test.create(name='e')
Test.create(name='f')

select = Test.select()
for s in select:
    print(s.id)
    Test.update(name=0).where(Test.id==s.id).execute()
```

and I get this :

```
1
2
1
2
3
4
5
6
```

You can see "id" 1 and 2 appear two times !

If i change last line by :

```
    print(Test.update(name=0).where(Test.id==s.id))
```

I haven't this problem (but my db is not updated)

It's normal or it's a bug ?
Thank
