2017-03-12 5 views
-4

Ich habe Liste mit Float-Werte, aber ich muss sie 1 zu 1 verwenden und einige Sachen mit ihnen tun. Ich möchte sie benutzen, aber ich weiß nicht, wie ich sie einzeln aus der Liste herausholen kann.Wie floats aus der Liste eins nach dem anderen, um mit ihnen zu berechnen

listthing = [7.0, 3.9, 5.25] 

Jetzt muß ich sie bei der Berechnung verwenden

lenghtstuff = float(listthing) * 100 * (7.0 * 2.0 + 0.5) 

Aber ich muß Berechnung machen mit jedem Wert aus der Liste, und weiß nicht, wie es zu tun, so würde es tun 1) 7.0 * 100 * (7.0 * 2.0 + 0.5)
2) 3,9 * 100 * (7,0 * 2,0 + 0,5) usw.

+0

Es ist unklar, welche Berechnung Sie vornehmen möchten, daher ist es schwer für uns, Ihnen zu sagen, wie Sie mit der Liste umgehen sollen. – byxor

+2

Ich schlage vor, Sie lesen jedes grundlegende Python-Tutorial. –

+0

Sicherlich, wenn Sie über Listen gelernt haben, haben Sie gelernt, wie man grundlegende Listen indiziert und wie man über Listen iteriert ... Aus welchem ​​Lehrbuch/Tutorial lernen Sie Python? –

Antwort

0

Verwenden Sie eine for Schleife.

for number in listthing: 
    lenghtstuff = float(number) * 100 * (7.0 * 2.0 + 0.5) 
    #do something with lengthstuff such as print it or append it to another list 
+0

Guter Punkt. Entsprechend bearbeitet. – stybl

0
list(map((lambda x: x* 100 * (7.0 * 2.0 + 0.5)), listthing)) 

denke ich, was Sie versuchen, eine Karte zu verwenden.

Aktualisierte Version mit Liste Verständnis:

[x* 100 * (7.0 * 2.0 + 0.5) for x in listthing] 
+0

Ihr habt recht, ich habe die Antwort aktualisiert. Ich schätze, das ist ein Wochenende von Haskell. – Soronbe

+0

@ PM2Ring Warum nur C-basiert? Ich denke, es ist vollkommen in Ordnung, auch vorhandene Python-Funktionen zu verwenden. Und wie vermeidet die Liste comp den Funktionsaufruf? Würden Sie den Code aus der Funktion kopieren? –

+0

@StefanPochmann Was ich meine ist, dass, wenn Sie einen Ausdruck als eine Funktion schreiben, nur um es als Funktion arg für 'map' zu verwenden, dann ist es egal, ob die Funktion eine richtige' def'-Funktion oder ein 'Lambda ist ', Sie sollten nur den Ausdruck in eine Liste comp schreiben. Aber ich stimme zu, dass mein vorheriger Kommentar irreführend sein könnte, also werde ich ihn löschen. –

0

Ich denke, der einfachste Weg, dies zu erreichen, ist wie so Ihre Liste der Schwimmer auf eine numpy Array konvertieren:

import numpy as np 

arr = np.array([7.0, 3.9, 5.25]) 
resulting_arr = arr * 100 * (7.0 * 2.0 + 0.5) 

Numpy wird führen die Operationen über das Array standardmäßig; Dies hängt natürlich davon ab, dass Sie es installiert haben, da es nicht in der Standardbibliothek ist.

+0

Numpy kann für etwas so einfaches Overkill sein, es sei denn, Sie verwenden Numpy bereits für etwas anderes (und angesichts des Verständnisses des OPs bezweifle ich stark, dass sie in diesem Stadium Numpy verwenden). OTOH, dein Code zeigt, dass die Art von Syntax, die das OP versuchte, unter den richtigen Umständen gültig ist. –

Verwandte Themen