理解关于布尔变量的python片段

时间:2017-10-22 14:12:06

标签: python

我在python& amp;我不知道以下这行是用于什么的?这是一个布尔值?(对于& if in a sentence?)如果有人知道,请解释。感谢

taken_match = [couple for couple in tentative_engagements if woman in couple]


###
for woman in preferred_rankings_men[man]:
    #Boolean for whether woman is taken or not
    taken_match = [couple for couple in tentative_engagements if woman in couple]
    if (len(taken_match) == 0):
        #tentatively engage the man and woman
        tentative_engagements.append([man, woman])
        free_men.remove(man)
        print('%s is no longer a free man and is now tentatively engaged to %s'%(man, woman))
        break
    elif (len(taken_match) > 0):
        ...

1 个答案:

答案 0 :(得分:2)

Python有一些很好的语法可以快速创建列表。你在这里看到的是列表理解 -

    taken_match = [couple for couple in tentative_engagements if woman in couple]

taken_match将成为女人所在夫妻的所有夫妻的列表 - 基本上,这会过滤 所有情侣女人不在这对夫妇中。

如果我们在没有列表理解的情况下写出来:

taken_match = []
for couple in couples:
     if woman in couple:
         taken_match.append(couple)

正如你所看到的那样..列表理解更酷:)

在那一行之后,你正在检查taken_match的长度是否为0-如果是,那么就没有找到那个女人的夫妻,所以我们加入了男人和女人之间的约会,然后继续。如果您有任何其他不明白的行,请随时提问!