如何在Python中迭代?

2024-09-25 00:31:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,但我已经学习了语法。以下是我的设想:

我有两个游标实例AllImages&;AllAlbums(我从数据库中获取数据,如下所示:

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

()

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

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

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

下面是两个dict的样子:

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=0inimages中的字典与AllAlbums中的_id69正确匹配。你知道吗

但是,在那之后(对于_id的其余部分,如1,2,3…8899…9999),它不会进入第二个for循环进行迭代。是的,我知道我的方法可能很粗糙,但我只需要运行这些基本代码。你知道吗

如何为AllAlbums重新迭代此游标?你知道吗

抱歉,如果我没有正确格式化代码。我使用的是python2.7


Tags: 代码inidimgfor字典findqq
2条回答

AllAlbums对字典的定义应该是这样的:

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

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

假设AllImagesAllAlbums是列表,您可以使用列表理解。你知道吗

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

解决办法很简单。你知道吗

我只是简单地从游标实例AllAlbums中列出一个列表,并且能够多次重复。非常感谢那些向我指出这一点的人(:

AllAlbumList = list(AllAlbums)

相关问题 更多 >