2016-12-21 63 views
1

的數字負值使用以下爲例:函數返回數組中的

PosList = [1,2,3,4,5] 
NegList = [-1,-2,-3,-4,-5] 

如果我想在一個陣列從數字正值我可以做到以下幾點:

PosNum = [abs(i) for i in NegList] 
PosNum 
(Output)[1, 2, 3, 4, 5] 

但是,如果我想做一個類似的任務,從正數列表中返回負數,我不知道要做到這一點的標準函數。我可以做這樣的事情:

minus = '-' 
NegNum = [int(minus + str(i)) for i in PosList] 
NegNum 
(Output)[-1, -2, -3, -4, -5] 

但肯定也有完成這個任務,我俯瞰的更好的方法......

+7

'[-abs(i)for i in PosL ist]'?... – Delgan

+0

爲什麼不只是'-abs(i)'? – trincot

+0

'[-i for我在PosList]'。或者如果你的起始數字可能不是正數,那麼'[-abs(i)for i in PosList]'。 – khelwood

回答

3

abs()前加-香港專業教育學院的符號:

>>> PosList = [1,2,3,4,5] 
>>> NegList = [-1,-2,-3,-4,-5] 

# Negative values for `+`ive list 
>>> [-abs(item) for item in PosList] 
[-1, -2, -3, -4, -5] 

# Negative values for `-`ive list 
>>> [-abs(item) for item in NegList] 
[-1, -2, -3, -4, -5] 
0

您可以簡單地否定abs函數的結果:

NegList = [-abs(i) for i in NegList] 
+0

請使用[編輯]鏈接解釋此代碼的工作原理,不要只給代碼,因爲解釋更有可能幫助未來的讀者。另見[回答]。 –