Python: 列表理解与布尔值作为返回值

2024-03-29 07:14:17 发布

您现在位置:Python中文网/ 问答频道 /正文

B是大小为k的二次矩阵。在

我尝试了下面的代码

if [x for x in range(k) if B[x,1] == 1]:

获得:

对于range(k-1)中的第一个x,停止For循环并返回true,这样可以执行if语句。如果没有这样的x,那么返回false,然后继续下面的代码。在


Tags: 代码infalsetrueforifrange矩阵
2条回答

看起来您想要^{}

if any(B[x,1] == 1 for x in range(k)):

arshajii's answer可能是正确的,但是如果您还想让第一个x的值满足您的条件,您可以:

try:
    x = next(x for x in range(k) if B[x, 1] == 1)
    # Do something with x
except StopIteration:
    # Do something else

编辑:更好,谢谢@arshajii:

^{pr2}$

相关问题 更多 >