我有一个愚蠢但问题.假设我有一个包含不同值的列表.像这样:
[1,2,3,'b', None, False, True, 7.0]
Run Code Online (Sandbox Code Playgroud)
我想迭代它并检查每个元素是否都不在某些禁用值的列表中.例如,这个列表是[0,0.0].
当我检查是否为假时,[0,0.0我得到了True.我知道python会False转到0这里.但我怎么能避免它并使这个检查正确 - 该False值不在[0,0.0]列表中?
kin*_*all 15
告诉它们之间的区别False,0你可以is用来比较它们.False是一个单例值,始终引用同一个对象.要比较列表中的所有项目以确保它们不是False,请尝试:
all(x is not False for x in a_list)
Run Code Online (Sandbox Code Playgroud)
顺便说一下,Python在这里没有任何东西:布尔值是整数的子类,并且False字面上相等0,不需要转换.
在比较时,您会想要使用is而不是==。
y = 0
print y == False # True
print y is False # False
x = False
print x == False # True
print x is False # True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3104 次 |
| 最近记录: |