<p>我相信通过一个例子可以更好地理解这个问题,比如说我有一个for循环,我想改变它是在dict上迭代,还是在一个值范围内迭代,这取决于一个变量。例如:</p>
<pre><code> my_dict = [ 'value_a':5, 'value_b':8, ... ]
if some_boolean:
for i in range(0, 10):
else:
for i in my_dict:
# body of the for loop
</code></pre>
<p>这将不起作用,因为first for语句下没有任何内容。我曾经考虑过用range()的值创建一个字典,或者将循环体写两次,但是我想知道是否有更优雅的解决方案。你知道吗</p>
<p><strong>有没有办法做到这一点而不用对变量做奇怪的事情?</strong></p>
<p>谢谢!你知道吗</p>
<pre><code>x = False #True
y = 1,2,3,4,5,6,7,8,9,
z = 11,22,33,44,55,66,77,88,99
for i in y if x else z:
print(i)
</code></pre>
<p>应该比较容易理解,希望有帮助。你知道吗</p>