【问题标题】:What is the most Pythonic way to convert 0 and 1 strings to boolean? [duplicate]将 0 和 1 字符串转换为布尔值的最 Pythonic 方式是什么? [复制]
【发布时间】:2019-02-09 13:10:27
【问题描述】:

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

bool(int(input_value))

not not int(input_value)

哪个最Pythonic?还有比上面介绍的更多的 Pythonic 方式吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    方法有很多,但我想提出以下几点:

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

    如果您得到的值与您期望的不同(由于错误、故障、API 更改等),这具有引发异常的优势。

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

    【讨论】:

      【解决方案2】:

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

      input_value=="1"
      

      例如

      bool_var = (input_value=="1")
      

      如果input_value 等于"1",这将给出True,如果它等于"0"(或其他任何值),则给出False

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-13
        • 2020-11-27
        • 2016-02-01
        相关资源
        最近更新 更多