2016-12-21 2 views
1

Verwendung der folgenden als Beispiel zurückzukehren:Funktion negative Werte für Zahlen in einem Array

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

Wenn ich einen positiven Wert von Zahlen in einem Array erhalten möchte, kann ich folgendes tun:

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

Aber wenn ich eine ähnliche Aufgabe ausführen möchte, um negative Zahlen aus einer positiven Liste von Zahlen zurückzugeben, kenne ich keine Standardfunktion, um dies zu tun. Ich kann so etwas tun:

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

Aber sicherlich gibt es viel bessere Möglichkeiten, diese Aufgabe zu tun, die ich mit Blick auf ...

+7

'[abs (i) für i in POSL ist] '? ... – Delgan

+0

Warum nicht nur' -abs (i) '? – trincot

+0

'[-i für i in PosList]'. Oder '[-abs (i) für i in PosList] 'wenn deine Startnummern nicht positiv sein sollten. – khelwood

Antwort

3

Gerade - ive Zeichen hinzufügen, bevor abs() als:

>>> 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

Sie können einfach das Ergebnis der Funktion abs negieren:

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

Bitte verwenden Sie den [Bearbeiten] Link erklären, wie dieser Code funktioniert und geben Sie nicht nur den Code, da eine Erklärung ist eher für zukünftige Leser zu helfen. Siehe auch [Antwort]. –