Python3.x:不同情况下的变量赋值

Python3.x: Variable Assignment for Different Cases

我正在尝试根据另一个变量为一个变量分配不同的值。我已经使用 if...else 语句来做到这一点。我想知道是否有更多 efficient/simpler 方法来完成此操作。

我排除了很多代码。我正在逐行分析数据集,其中 column[3] 可以是任何数字。

我的代码:

byte_3 = format(column[3], 'b').zfill(8)
alarm = int(byte_3[1:8], 2)
if byte_3[0] == '1':
    print_string += 'Alarm '
        if alarm == 0:
            stat = 'Voltage Dropout'
        elif alarm == 1:
            stat = 'Voltage Restored'
        elif alarm == 2:
            stat = 'Probe Started'
        elif alarm == 3:
            stat = 'Probe Completed'
        elif alarm == 4:
            stat = 'Cashbox Removed'
        elif alarm == 5:
            stat = 'Cashbox Restored'
    print(print_string + stat)

我希望 stat 根据分配给 alarm 的值进行更改。是否有可能以不同的方式实现这一目标?分配给 alarm 的大部分值将是 1-26 中的整数,其中每个单独的整数都会更改 stat 的分配,即如果 alarm 为 0,我预计 statVoltage Dropout 或者如果 alarm 变为 4 我希望 statCashbox Removed

有些答案会出现字典,但听起来您想要更深入的解释,希望我能提供。字典类似于列表,只是您为字典中的每个元素定义一个键和一个值。然后您可以检索给定键的值。在你的情况下,它看起来像

alarm = int(byte_3[1:8], 2)
stat_dictionary = {0:'Voltage Dropout',1:'Voltage Restored',2:'Probe Started',3:'Probe Completed',4:'Cashbox Removed',5:'Cashbox Restored'}
if byte_3[0] == '1':
    print_string += 'Alarm '
    print(print_string+stat_dictionary[alarm]

您可以将 stat_dictionary 替换为列表并具有相同的功能,但字典更清晰。