我有以下问题:
my_list = [
[(0.12064145946741212, 0.8105813193990855), 0.007220216606498195],
[(0.12064145946741212, 0.8040496407576747), 0.007220216606498195]
]
如果它们的负数变为0,则需要更改元组内部的值;如果将0变为0.01,则需要更改元组之外的值。
我该怎么办?我迷路了
答案 0 :(得分:1)
您可以通过列表理解来做到这一点:
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]]