alw*_*btc 2 python for-loop if-statement colon
你能看一下下面的代码:
def search(self, filter):
return [note for note in self.notes if note.match(filter)]
Run Code Online (Sandbox Code Playgroud)
我想for,if声明需要冒号.以上,没有冒号后for和if.这种if和for用法看起来不像我在教科书中看到的那样.我通常读到的是这样的:
for note in self.notes:
some code
Run Code Online (Sandbox Code Playgroud)
要么
if note.match(filter):
some code
Run Code Online (Sandbox Code Playgroud)
请您解释一下这种if和for使用,它不包括冒号,这是一个单行的语句.Anf if子句在声明的最后.真的很困惑.
这不仅仅是一个循环/ if,而是一个列表理解
特别是这段代码:
return [note for note in self.notes if note.match(filter)]
Run Code Online (Sandbox Code Playgroud)
对于每个音符,self.notes仅返回与过滤条件匹配的音符.
这基本上是一个过滤器,但通常你也可以使用列表推导来"转换"列表元素,例如:
[1000 * x for x in myNumbers if x < 2]
Run Code Online (Sandbox Code Playgroud)