是否可以在if语句中更改for循环头?

2024-04-16 17:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我相信通过一个例子可以更好地理解这个问题,比如说我有一个for循环,我想改变它是在dict上迭代,还是在一个值范围内迭代,这取决于一个变量。例如:

    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

这将不起作用,因为first for语句下没有任何内容。我曾经考虑过用range()的值创建一个字典,或者将循环体写两次,但是我想知道是否有更优雅的解决方案。你知道吗

有没有办法做到这一点而不用对变量做奇怪的事情?

谢谢!你知道吗


Tags: oftheinloopforifvaluemy
2条回答
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)

应该比较容易理解,希望有帮助。你知道吗

您可以这样做(作为前面答案的替代方法):

def loop(condition):
    iterable = range(0,10) if condition else ['a','b','c']
    return iterable

#Then you cxan go as:

for i in loop(True):
    print('range')
#Or

for i in loop(False):
    print("Dict or any iterable")

相关问题 更多 >