所以我在麻省理工学院的compsci 6.00.1课上,当我在做手指练习和问题时,我会尽可能地使用列表理解法,到目前为止我已经能够做到了。你知道吗
从我的阅读中可以看出,你总是可以通过理解来写一个for
循环,但是不是每个for
循环都可以用于理解。你知道吗
我想知道什么时候不行什么时候可以?我是否需要写循环,然后试着理解它,看看它是否有效?在我试着理解它之前,有没有办法知道呢?你知道吗
示例:
def getAvailableLetters(lettersGuessed):
from string import ascii_lowercase as letters
letter_list = list(letters)
for x in lettersGuessed:
if x in letter_list:
letter_list.remove(x)
return ' '.join(letter_list)
print(getAvailableLetters(['a', 'b', 'x', 'z']))
理解力:
def getAvailableLetters(lettersGuessed):
from string import ascii_lowercase as letters
letter_list = list(letters)
return ''.join(x for x in lettersGuesseed for x in letter_list if letter_list.remove(x))
print(getAvailableLetters(['a', 'b', 'x', 'z']))
现在,当我尝试理解时,它(我的IDE,pycharm)说第二个x是“未使用的局部变量”,而lettersGuessed是“未解析的引用”。你知道吗
这是我不能理解的一次吗?如果是的话,我怎么能不写出来就知道呢?你知道吗
不,这里有几个问题:
lettersGuesseed
有一个拼写错误if
中使用letter_list.remove(x)
?你知道吗在所有修复之后,这将作为原始代码工作:
输出:
相关问题 更多 >
编程相关推荐