将 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 方式是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章