在 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]
c
是secretWord
中的每个字母,l
是lettersGuessed
中的每个字母。让我们逐个检查它;
l for l in lettersGuessed
这等于;
for l in lettersGuessed:
dosomethingwith l
所以这部分 returns l
,其他部分正在检查 if c == l
,所以 returns True
如果这个为真。基本上,如果 l
匹配 c
.
所以,假设我有一个 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]
c
是secretWord
中的每个字母,l
是lettersGuessed
中的每个字母。让我们逐个检查它;
l for l in lettersGuessed
这等于;
for l in lettersGuessed:
dosomethingwith l
所以这部分 returns l
,其他部分正在检查 if c == l
,所以 returns True
如果这个为真。基本上,如果 l
匹配 c
.