将0和1字符串转换为布尔值的最Pythonic方法是什么?

时间:2018-09-04 13:20:46

标签: python

我正在从配置为Input的通用IO(GPIO)中读取一个值,它返回一个0或1的字符串。我看到两种简单的方法可以将其转换为布尔值:

bool(int(input_value))

not not int(input_value)

哪个是最Python化的?除了上面介绍的方法以外,还有更多Python方式吗?

2 个答案:

答案 0 :(得分:10)

方法很多,但我想提出以下建议:

{'0': False, '1': True}[input_value]

如果您获得的值与期望值不同(由于错误,故障,API更改等),则会产生异常。

到目前为止提供的所有其他选项将静默接受任何字符串作为输入。

答案 1 :(得分:0)

如果您的input_value必须为"1""0",并且您希望布尔值是"1"时为true,那么您希望布尔表达式

input_value=="1"

例如

bool_var = (input_value=="1")

如果True等于input_value,将得到"1",如果等于False(或其他任何值),则得到"0"