Добавить условие в оператор if в моем коде? - PullRequest
0 голосов
/ 29 марта 2020

есть ли способ добавить в конце формулы mc_callAsia еще 0 ??

for j in range (1,10):
  for k in range (len(K)) :  
    mc_callAsia = np.asarray([(i-K[k]) for i in dictimoyennes["moyenneAsia" + str (j)] if (i-K[k])>0])
    payoffAsia = (1/(1+r[k])**T)*sum(mc_callAsia)/10000
    payoffsAsia = np.append(payoffsAsia, [payoffAsia])

Цель состоит в том, чтобы все значения были либо положительными, либо 0. Я пытался сделать это так

for j in range (1 ,10):
  for k in range (len(K)) : 
    for i in range (1, 10000):
        payoffss= max(dictimoyennes["moyenneAsia" + str (j)][i] - K[k],0) 
        payoffssAsia = np.append(payoffssAsia, [payoffss])

но он зацикливается навсегда ...

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

1 Ответ

0 голосов
/ 29 марта 2020

Да, вы можете использовать if - else в for l oop в одной строке.

# Simple structure
[ x if x%2 else x*100 for x in range(1, 10) ]

# It returns a list. So in you case it would be...
mc_callAsia = [np.asarray([(i-K[k]) if (i-K[k])>0]) else 0 for i in dictimoyennes["moyenneAsia" + str (j)]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...