在 python 的列表中循环

Looping Inside a list in python

所以,假设我有一个 secretWord = 'apple' 并且我有一个名为 lettersGuessed.

的列表
lettersGuessed = ['a', 'e', 'i', 'k', 'p', 'r', 's']

这个函数 returns 一个布尔值 - True 如果 secretWord 已经被猜到(即 secretWord 的所有字母都在 lettersGuessed 中)并且False否则。

如果我这样写

for c in secretWord:
    matched = [l for l in lettersGuessed if c == l]
    if len(matched) == 0:
        return False

    return True

matched = [l for l in lettersGuessed if c == l]

究竟发生了什么

您正在构建一个列表,该列表包含列表中与秘密单词的当前字符相等的所有字母,如果该列表为空,则推断当前字符尚未被猜到。

当然会更简单

return all(c in lettersGuessed for c in secretWord)

在我看来,reader。

matched = [l for l in lettersGuessed if c == l]

csecretWord中的每个字母,llettersGuessed中的每个字母。让我们逐个检查它;

l for l in lettersGuessed 

这等于;

for l in lettersGuessed:
    dosomethingwith l

所以这部分 returns l,其他部分正在检查 if c == l,所以 returns True 如果这个为真。基本上,如果 l 匹配 c.