将 0 和 1 字符串转换为布尔值的最 Pythonic 方式是啥? [复制]

Posted

技术标签:

【中文标题】将 0 和 1 字符串转换为布尔值的最 Pythonic 方式是啥? [复制]【英文标题】: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 方式吗?

【问题讨论】:

【参考方案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

【讨论】:

以上是关于将 0 和 1 字符串转换为布尔值的最 Pythonic 方式是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将字符串转换为布尔值[重复]

返回值为布尔值的方法

将 SphinxSearch 查询语法转换为 Ruby 中的布尔搜索字符串

PL/SQL 将字符串转换为布尔值

如何将字符串转换为布尔值

将 32 个布尔值的集合转换为 32 位整数 [重复]