2014-01-04 2 views
2

У меня есть список:отрицания списка в Python

v=[0, -0.01, 0, 0, 0.01, 0.25, 1] 

Я хотел список быть:

v=[0, 0.01, 0, 0, -0.01, -0.25, -1] 

, который является лучшим способом сделать это? -v не будет работать.

ответ

18

Использование списка понимание:

>>> v=[0, -0.01, 0, 0, 0.01, 0.25, 1] 
>>> [-x for x in v] 
[0, 0.01, 0, 0, -0.01, -0.25, -1] 

Использование map с operator.neg:

>>> import operator 
>>> map(operator.neg, v) 
[0, 0.01, 0, 0, -0.01, -0.25, -1] 
  • Заменить map(..) с list(map(..)), если вы используете Python 3.x

Использование numpy:

>>> import numpy as np 
>>> -np.array(v) 
array([-0. , 0.01, -0. , -0. , -0.01, -0.25, -1. ]) 
>>> (-np.array(v)).tolist() 
[-0.0, 0.01, -0.0, -0.0, -0.01, -0.25, -1.0] 
Смежные вопросы