<p>这段代码返回一个列表[0,0,0]到[9,9,9],它不产生重复,并且每个元素按从最小到最大的顺序排列。在</p>
<pre><code>def number_list():
b=[]
for position1 in range(10):
for position2 in range(10):
for position3 in range(10):
if position1<=position2 and position2<=position3:
b.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>([position1, position2, position3])
return b
</code></pre>
<p>正在寻找一种不使用多个变量(position1、position2、position3)而只使用一个变量<code>i</code>来编写这段代码的更短更好的方法。在</p>
<p>下面是我修改代码的尝试,但我一直在实现<code>if</code>语句:</p>
^{pr2}$
<p>这里有一种比检查更简单的方法,但在我看来,这比<code>combinations_with_replacement</code>更糟糕:</p>
<pre><code>[(a, b, c) for a in range(10)
for b in range(a, 10)
for c in range(b, 10)]
</code></pre>
<p>也就是说,与在生产之后过滤值不同,您只需首先生成您想要的值。在</p>