擅长:python、mysql、java
<p>你当然可以有一个没有参数的lambda表达式。你知道吗</p>
<p>但是,在这种情况下,实际上应该传递一个参数:行本身。这是您正在操作的对象,因此应该将其传递到函数中。你知道吗</p>
<p>您的<code>if</code>语句不起作用,因为Python中的inline if必须<em>始终</em>有else子句。在本例中,else中的值是空字符串。你知道吗</p>
<p>所以:</p>
<pre><code>formatted_line = lambda line: "_".join(line.strip().split("=")[1].split()) if line.startswith(x) else ""
</code></pre>
<p>如果您只想读取值,直到行停止以开始!,您可以使用<code>itertools.takewhile</code>:</p>
<pre><code>from itertools import takewhile
...
for line in takewhile(lambda line: line.startswith("!"), Dataset):
</code></pre>