Возможно ли иметь встроенный оператор if с членством в python? - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь построить полосчатую матрицу из 9 компонентов, чтобы решить проблему конечных разностей.Моя идея состоит в том, чтобы сначала поместить их в нормальную матрицу, а затем по диагонали с помощью какого-то метода scipy.sparse.

Мой код отлично работает с нормальным условием if, например:

for l,c in enumerate(node_n):
    Pxx[l,4] = epsi
    if (c[0]+1,c[1]) in tensor:
        Pxx[l,5] = psi 

но мне было интересно, что вместо этого можно написать это в одной строке, например:

Pxx[l,2] = gamma if ((c[0]+1,c[1]+1) in tensor)

Я пробовал с и без скобок, с использованием квадратных скобок и так далее, но я всегда получаю invalid syntax.Я знаю, что это не большая проблема, но я бы предпочел 9 строк кода, по одной для каждого компонента, вместо 9 операторов if.

Заранее спасибо!

С уважением

...