問題:我需要多次使用同一個遊標。然後發現一個for迴圈這個遊標就沒有用了。 然後我使用了
a = db.base.find() c = b = a
但是a for迴圈之後b,c都不能用了。 之後又想到用深度拷貝:
import copy a = db.base.find() b = copy.deepcopy(a) c = copy.deepcopy(a)
這樣就可以使用。 但是這樣會不會增加記憶體的使用~!
請問怎麼使用才是最優美的呢?謝謝
学习是最好的投资!
可以使用itertools的tee
In [20]: from itertools import tee In [21]: x1,x2 = tee(db.x.find()) In [22]: list(x1) Out[22]: [{u'_id': ObjectId('590026b521d7dd4a1beb3c1a'), u'name': u'bar'}, {u'_id': ObjectId('590026b921d7dd4a1beb3c1b'), u'name': u'foo'}] In [23]: list(x2) Out[23]: [{u'_id': ObjectId('590026b521d7dd4a1beb3c1a'), u'name': u'bar'}, {u'_id': ObjectId('590026b921d7dd4a1beb3c1b'), u'name': u'foo'}]
可以使用itertools的tee