Изменение значений в списке с помощью кортежа и значения - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть следующая проблема:

my_list = [
  [(0.12064145946741212, 0.8105813193990855), 0.007220216606498195],
  [(0.12064145946741212, 0.8040496407576747), 0.007220216606498195]
]

Мне нужно изменить значения внутри кортежа, если они отрицательные, чтобы стать 0, и для значения вне кортежа, если 0 равно 0,01.

Как бы я это сделал? Я потерян

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете сделать это в понимании списка:

my_list = [
  [(0.12064145946741212, 0.8105813193990855), 0.007220216606498195],
  [(0.12064145946741212, 0.8040496407576747), 0.007220216606498195],
  [(-1, 0.8105813193990855), 0],
  [(0.12064145946741212, -1), 0.007220216606498195],
  [(-1, -1), 2],
  [(-1, -1), 0]]

[[(a[0], a[1]) if a[0]>0 and a[1]>0 else (0, 0) if a[0]<0 and a[1]<0 else (0, a[1]) if a[0]<0 else (a[0], 0)] + [0.01] if c==0 
 else [(a[0], a[1]) if a[0]>0 and a[1]>0 else (0, 0) if a[0]<0 and a[1]<0 else (0, a[1]) if a[0]<0 else (a[0], 0)] + [c] 
 for a, c in my_list]

выход:

[[(0.12064145946741212, 0.8105813193990855), 0.007220216606498195],
 [(0.12064145946741212, 0.8040496407576747), 0.007220216606498195],
 [(0, 0.8105813193990855), 0.01],
 [(0.12064145946741212, 0), 0.007220216606498195],
 [(0, 0), 2],
 [(0, 0), 0.01]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...