我是Python的新手,但是我已经遍历了语法。这是我的情况:

我有两个Cursors AllImagesAllAlbums的实例(我从数据库获取数据,并以这种方式获取它们:

AllImages = Images.find()
AllAlbums = Albums.find()




[编辑:我正在使用PyMongo API]

AllAlbums的每本词典中,我都有一个称为images = [1234,2234,16363]的数字数组

All Images的每本词典中,都有一个名为_id的字段

这是两个字典的样子:

来自AllAlbums

{ _id:23
  images:[1123,6643,4,9087]
}


来自AllImages

{ _id:6643}


现在,我需要查看_id中是否存在此images

到目前为止,这是我写的:

for img in AllImages:
    for alAl in AllAlbums:
        alIm = alAl['images']
        for qq in alIm:
            if qq==img['_id']:
                print 'Here!',img['_id'],' with',alAl['_id']


现在这是我得到的输出:

该程序正确匹配_id = 69的0中的词典的images = AllAlbums

但是,此后(对于其他_id像1,2,3 ... 8899 ... 9999),它不会进入第二个_id循环进行迭代。是的,我知道我的方法可能很粗糙,但我只需要运行此基本代码即可。

如何为for重复此光标?

抱歉,如果我没有正确格式化代码。我正在使用Python 2.7

最佳答案

来自AllAlbums的字典的定义应如下所示:

album = {'_id': 23, 'images': [1123, 6643, 4, 9087]}


(当然,它可以有更多的字段。)

假设AllImagesAllAlbums是列表,则可以使用列表理解。

with_image = [a for a in AllAlbums if 6643 in a[`images`]]

09-17 03:28