请看下面的代码:
def search(self, filter):
return [note for note in self.notes if note.match(filter)]
我认为
for
和if
语句需要一个冒号。上面,在for
和if
之后没有结肠。这种“如果”和“为了”的用法看起来不像我在课本上读到的。我通常读到的是这样的:for note in self.notes:
some code
或
if note.match(filter):
some code
请您解释一下这种
if
和for
用法,它不包括冒号,而且是单行语句。Anfif
子句在语句的末尾。真让人困惑。 最佳答案
这不仅仅是一个循环/if,而是一个list comprehension
尤其是这段代码:
return [note for note in self.notes if note.match(filter)]
对于
self.notes
中的每个注释,只返回与筛选条件匹配的注释。这基本上是一个过滤器,但通常您也可以使用列表理解来“转换”列表元素,例如:
[1000 * x for x in myNumbers if x < 2]
关于python - for和if在Python中的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6001209/