访问列表的多个元素而不知道其索引

时间:2019-05-06 15:32:50

标签: python

我正在研究信号处理算法。

bool_carrierPhaseFlag = cosTwoDeltaPhi < 0.6
bool_CNRFlag = carrierToNoiseRatio < 25
if where(bool_carrierPhaseFlag) or where(bool_CNRFlag)
    print('Loss of tracking')

布尔值是数组,并且我希望if条件在使用上述条件的数组元素为false时打印“跟踪丢失”。

1 个答案:

答案 0 :(得分:0)

您可以使用all内置函数来测试容器中的 all 个元素是否评估为True

>>> arr = [True, True, False]
>>> if not all(arr):
...     print('One of us is False!')
... 
One of us is False!

您的代码如下:

bool_carrierPhaseFlag = cosTwoDeltaPhi < 0.6
bool_CNRFlag = carrierToNoiseRatio < 25
if not all((bool_carrierPhaseFlag,bool_CNRFlag)):
    print('Loss of tracking')

请注意括号以根据参数创建元组,all期望使用单个参数(如果要动态构建可迭代对象,则为不带括号的生成器表达式)。

all是一种短路操作,也就是说,一旦在容器中找到计算结果为False的元素(例如{{1}),它将返回False。 },False或零。

如果容器中的任何元素为真,则any内置函数将返回None