相关疑难解决方法(0)

布尔标识== True vs为True

使用if foo is None而不是if foo == None测试值是否具体是标准惯例None.

如果你想确定一个值是否正确True(不仅仅是一个真实的值),是否有任何理由使用if foo == True而不是if foo is True?这在CPython(2.x和3.x),Jython,PyPy等实现之间是否有所不同?

示例:say True用作要与值'bar'或任何其他类似真值的值区分开的单例值:

if foo is True: # vs foo == True
    ...
elif foo == 'bar':
    ...
Run Code Online (Sandbox Code Playgroud)

是否存在使用if foo is True会产生不同结果的情况if foo == True

注意:我知道Python布尔值 - 如果x:,则vs x == True,vs如果x为True.但是,它仅解决是否if foo,if foo == Trueif foo is True通常应用于确定是否foo具有真实值. …

python pypy boolean jython cpython

50
推荐指数
5
解决办法
4万
查看次数

与布尔numpy数组VS PEP8 E712的比较

PEP8 E712要求"比较True应该if cond is True:if cond:".

但如果我遵循这一点,PEP8我会得到不同/错误的结果.为什么?

In [1]: from pylab import *

In [2]: a = array([True, True, False])

In [3]: where(a == True)
Out[3]: (array([0, 1]),)
# correct results with PEP violation

In [4]: where(a is True)
Out[4]: (array([], dtype=int64),)
# wrong results without PEP violation

In [5]: where(a)
Out[5]: (array([0, 1]),)
# correct results without PEP violation, but not as clear as the first two imho. "Where what?"
Run Code Online (Sandbox Code Playgroud)

python numpy pep8

7
推荐指数
2
解决办法
2448
查看次数

Python bool 和 numpy bool_ 的行为究竟有何不同?

TLDR: is-comparison 适用于 Python bool,不适用于 numpy bool_。是否存在其他差异?


几天前,我遇到了布尔人的一种奇怪行为。当我尝试对这个 numpy 数组使用 is-comparison 时:

arr1 = np.array([1,0,2,0], dtype=bool)
arr1

Out[...]: array([ True, False,  True, False])
Run Code Online (Sandbox Code Playgroud)

(这些变量名是虚构的,与真实变量名或生产代码的任何相似之处纯属巧合)

我看到了这个结果:

arr1 is True

Out[...]: False
Run Code Online (Sandbox Code Playgroud)

这是合乎逻辑的,因为arr1它不是 True 或 False,它是 numpy 数组。我检查了这个:

arr1 == True

Out[...]: array([ True, False,  True, False])
Run Code Online (Sandbox Code Playgroud)

这按预期工作。我提到了这个可爱的行为并立即忘记了它。第二天,我检查了数组元素的真实性:

[elem is False for elem in arr1]

它返回给我这个!

Out[...]: [False, False, False, False]

我真的很困惑,因为我记得在 Python 数组中(我认为问题出在数组行为中):

arr2 = [True, False, True, False]
[elem is False for elem in arr2]
Run Code Online (Sandbox Code Playgroud)

有用: …

python numpy

3
推荐指数
1
解决办法
8133
查看次数

标签 统计

python ×3

numpy ×2

boolean ×1

cpython ×1

jython ×1

pep8 ×1

pypy ×1