Python: понимание списка с логическим значением в качестве возвращаемого значения - PullRequest
0 голосов
/ 12 ноября 2018

B - это квадратичная матрица размера k.

Я попробовал следующий код

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

, чтобы получить:

Для первого x в range(k-1), для которого B[x,1] == 1, остановите цикл for и верните true, чтобы можно было выполнить оператор if.Если такого x нет, верните false и перейдите к следующему коду.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

ответ Аршаджи , вероятно, прав, но если вы также хотите, чтобы значение первого 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:

x = next(x for x in range(k) if B[x, 1] == 1, None)
if x is not None:
    # Do something with x
else:
    # Do something else
0 голосов
/ 12 ноября 2018

выглядит так, как вы хотите any():

if any(B[x,1] == 1 for x in range(k)):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...