脾气暴躁:需要帮助理解“ in”运算符会发生什么

脾气暴躁:需要帮助理解“ in”运算符会发生什么,第1张

脾气暴躁:需要帮助理解“ in”运算符会发生什么

Python之所以做出选择

bool([False,True])
True
因为(说)任何非清空列表都具有布尔值True。

Numpy做出

bool(np.array([False,True]))
应该引发ValueError的选择。Numpy是从一些用户的角度设计的,一些用户可能想知道数组中的 任何
元素是否为True,而其他用户可能想知道数组中的 所有
元素是否为True。由于用户的愿望可能有冲突,因此NumPy拒绝猜测。它会引发ValueError并建议使用
np.any
np.all
(尽管如果您希望复制类似Python的行为,则可以使用
len
)。

在评估时

c inl
,Python会
c
l
开头的每个元素进行比较
a
。它评估
bool(c==a)
。我们得到
bool(np.array([TrueTrue]))
,它引发ValueError(由于上述原因)。

由于numpy拒绝猜测,因此您必须具体。我建议:

import numpy as npa=np.array((2,1))b=np.array((3,3))c=np.array((2,1))l=[a,b]print(any(np.all(c==elt) for elt in l))# True


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存