我有101个文档的集合,我需要迭代它们,一次取10个集合,并在列表中存储特定字段(10个文档)的值。
我试过了:
values = db.find({},{"field":1})
urls = []
count = 0
for value in values:
if(count < 10):
urls.append(value["field"])
count = count + 1
print count
else:
print urls
urls = []
urls.append(value["field"])
count = 1
它不会获取最后一个值,因为它不会达到条件。任何优雅的方式来做到这一点并纠正这种情况?
答案 0 :(得分:0)
每次循环重启时,您都会将count
重置为0
。在循环外移动声明:
count = 0
for value in values:
如果urls
已经填写,这将是您唯一的问题。
答案 1 :(得分:0)
据我所知,你有一些数据要组织成10个批次。如果是这样,也许这会有所帮助:
N = 10
values = list(db.find({},{"field":1}))
url_batches = [
[v['field'] for v in values[i:i+N]]
for i in xrange(0, len(values), N)
]