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

时间:2018-03-02 08:51:07

标签: python python-3.x for-loop

我相信用一个例子可以更好地理解这个问题,比如说我有一个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

这不起作用,因为第一个声明下没有任何内容。我曾想过用字符串()的值创建一个字典,或者写两次循环体,但我想知道是否有更优雅的解决方案。

有没有办法做这个而不用变量做奇怪的事情?

谢谢!

2 个答案:

答案 0 :(得分: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)

应该相当容易理解,希望它有所帮助。

答案 1 :(得分:2)

你可以做这样的事情(对于前面的答案的替代方法。):

if (move_uploaded_file($_FILES['async-upload']['tmp_name'], __DIR__.'/wp-content/uploads/'.$_FILES['async-upload']['name'])) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    // this always returns 0
    echo $_FILES['async-upload']["error"];
}