Modificar elemento de lista con lista de comprensión en Python

gente

Quiero modificar el elemento de la lista con la comprensión de la lista. Por ejemplo, si el elemento es negativo, agregue 4 a él.

Asi la lista

a = [1, -2 , 2] 

será convertido a

 a = [1, 2, 2] 

El siguiente código funciona, pero me pregunto si hay una mejor manera de hacerlo.

Gracias.

 for i in range(len(a)): if a[i]<0: a[i] += 4 

 a = [b + 4 if b < 0 else b for b in a] 

Si desea cambiar la lista en el lugar , esta es casi la mejor manera. Lista de comprensión creará una nueva lista. También podría usar la enumerate , y la asignación debe hacerse a a[i] :

 for i, x in enumerate(a): if x < 0: a[i] = x + 4