Python elegant assignment based on True/False values

后端 未结 11 1709
日久生厌
日久生厌 2021-01-31 09:32

I have a variable I want to set depending on the values in three booleans. The most straight-forward way is an if statement followed by a series of elifs:

if a a         


        
11条回答
  •  我在风中等你
    2021-01-31 09:48

    Since your getting all the combinations, you could create an index based on the values like this:

    def value(a,b,c ): 
       values = ['8th','7th','6th','5th','4th','3rd','2nd','1st']
       index = ( 4 if a else 0 ) + ( 2 if b else 0 ) + ( 1 if c else 0 )
       return values[index]
    
    if __name__ == "__main__":
       print value(True,  True,  True )
       print value(True,  True,  False )
       print value(True,  False, True )
       print value(True,  False, False )
       print value(False, True,  True )
       print value(False, True,  False)
       print value(False, False, True )
       print value(False, False, False)
    

    output:

    1st
    2nd
    3rd
    4th
    5th
    6th
    7th
    8th
    

提交回复
热议问题