Evaluate multiple variables in one 'if' statement?

前端 未结 8 2259
后悔当初
后悔当初 2020-12-05 15:50

Say I have a bunch of variables that are either True or False. I want to evaluate a set of these variables in one if statement to see if they are

相关标签:
8条回答
  • 2020-12-05 15:51

    You could do:

    if var1 == var2 == var3 == var4 == False:
      do_stuff()
    

    But, if the variables evaluate to true or false, you could also do this:

    if var1 and var2 and var3 and var4:
      do_stuff()
    

    Or

    if all([var1, var2, var3, var4]):
      do_stuff()
    
    0 讨论(0)
  • 2020-12-05 15:51

    You can use if var1 == var2 == var3 == False:

    0 讨论(0)
  • 2020-12-05 15:54
    >>> not any([False, False])
    True
    >>> not any([True, False])
    False
    >>> 
    

    Use the any() keyword.

    0 讨论(0)
  • 2020-12-05 16:04

    How about this:

    # if all are False
    if not any([var1, var2, var3, var4]):
        # do stuff
    

    or:

    # if all are True
    if all([var1, var2, var3, var4]):
        # do stuff
    

    These are easy to read, since they are in plain English.

    0 讨论(0)
  • 2020-12-05 16:07

    You should never test a boolean variable with == True (or == False). Instead, either write:

    if not (var1 or var2 or var3 or var4):
    

    or use any (and in related problems its cousin all):

    if not any((var1, var2, var3, var4)):
    

    or use Python's transitive comparisons:

    if var1 == var2 == var3 == var4 == False:
    
    0 讨论(0)
  • 2020-12-05 16:10

    if all(not v for v in (var1, var2, var3, var4)):

    That's for the "all false" branch. For "all true", just do if all((var2, var2, var3, var4)):.

    0 讨论(0)
提交回复
热议问题