在 Python 中从字符串转换为布尔值

2022-09-05 01:08:08

如何在Python中将字符串转换为布尔值?此尝试返回:True

>>> bool("False")
True

答案 1

实际上,您只需将字符串与您希望接受的表示 true 的字符串进行比较,这样您就可以这样做:

s == 'True'

或者对照一大堆值进行检查:

s.lower() in ['true', '1', 't', 'y', 'yes', 'yeah', 'yup', 'certainly', 'uh-huh']

使用以下命令时要小心:

>>> bool("foo")
True
>>> bool("")
False

空字符串的计算结果为 ,但其他所有内容的计算结果为 。因此,这不应该用于任何类型的解析目的。FalseTrue


答案 2

警告:从Python 3.12开始,这个答案将不再有效(自3.10起已弃用)

用:

bool(distutils.util.strtobool(some_string))

真实值为 y、yes、t、true、on 和 1;假值为 n、否、f、假、关和 0。提高值错误,如果 val 是其他任何东西。

请注意,它返回整数表示形式,因此需要用它来包装才能获得布尔值。distutils.util.strtobool()bool()