擅长:python、mysql、java
<p>如果您正在寻找一个<code>lambda</code>,则需要一个返回<em>字符串</em>的。这意味着您需要一个生成器来生成字符串。你知道吗</p>
<p>因此,您需要2个级别的<code>str.join</code>:</p>
<pre><code>In [856]: f = lambda x: '\n'.join(' '.join(map(str, range(1, i))) for i in range(1, x + 1))
In [857]: print(f(20))
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12 13
1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
</code></pre>
<p>它看起来很复杂,但它就像一个循环,浓缩成一个生成器。我们为每个<code>i</code>使用<code>' '.join(map(str, range(1, i)))</code>生成每一行,然后所有这些行都被新行<code>\n</code>连接起来。你知道吗</p>