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

3

我正在从一个配置为输入的通用IO(GPIO)读取一个值,它返回一个字符串,要么是0要么是1。我认为有两种简单的方法将其转换为布尔值:

bool(int(input_value))

或者

not not int(input_value)

哪种方法是最符合Python风格的?是否有比上述方法更符合Python风格的方法?
2个回答

12

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

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

如果您遇到预期不同的值(由于错误、故障、API更改等原因),则此方法具有引发异常的优点。

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


0
如果你的必须是"1""0",并且你希望当它为"1"时布尔值为真,则你需要以下布尔表达式。
input_value=="1"

例如

bool_var = (input_value=="1")

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接