2016-05-31 7 views
-1

Ich muss ein Listenverständnis verwenden, um bestimmte Elemente in einer Liste von Celsius in Fahrenheit zu konvertieren. Ich habe eine Liste von Temperaturen. Was meine beste Vermutung ist an dieser Stelle sieht so aus:Probleme mit dem Listenverstehen haben

good_temps = [c_to_f(temp) for temp in temperatures if 9 < temperatures[temp] <32.6] 

Allerdings mache ich nicht etwas richtig und ich kann es nicht herausfinden.

+0

Wenn eine der folgenden Antworten Ihr Problem behebt, sollten Sie es akzeptieren (klicken Sie auf das Häkchen neben der entsprechenden Antwort). Das macht zwei Dinge. Es lässt jeden wissen, dass Ihr Problem zu Ihrer Zufriedenheit gelöst wurde, und es gibt der Person, die Ihnen hilft, die Unterstützung zuzuschreiben. Eine vollständige Erklärung finden Sie [hier] (http://meta.stackexchange.com/a/5235). –

Antwort

2

Eine alternative Lösung zu dem einem in einer anderen Antwort darauf ist Filter zu verwenden, um die Teilmenge zu erhalten:

filter(lambda temp: 9 < temp < 32.6, temperatures) 

Dann wird eine Liste Verständnis, um die Transformationen zu machen:

[c_to_f(temp) for temp in temperatures] 

Schluss Ausdruck:

good_temps = [c_to_f(temp) for temp in filter(lambda t: 9 < t < 32.6, temperatures)] 
+0

es scheint, dass dies in konvertierten und uncoverted temps in 'good_temps' mischen wird – tenwest

+0

@tenwest, du hast Recht, ich war verwirrt durch seine" bestimmte Elemente in einer Liste "Teil, aber es macht keinen Sinn selektiv zu konvertieren (in diesem Kontext). – kaspersky

+0

ah ja, ich habe diesen Teil überflutet, jetzt verstehe ich besser den Downvote hah – tenwest

2

Sie sind sehr nah dran. Was Sie brauchen, ist:

good_temps = [c_to_f(temp) for temp in temperatures if 9 < temp < 32.6] 

Dieser Code wird nur temp konvertieren, wenn es größer als 9 ist und weniger als 32,6. Für temp Werte außerhalb dieses Bereichs wird nichts zu good_temps hinzugefügt.

temp ist bereits ein Element aus temperatures, so temperatures[temp] nicht viel Sinn machen, denn das ist ein Element von temperatures als Index zu verwenden ist versucht.

+0

Ich bin bei der Arbeit fest, aber ich kann dir nicht sagen, wie aufgeregt ich bin, um wieder zurück zu kommen! Vielen Dank. Ich bin froh, dass ich in der Nähe war. Ich bekam immer einen Syntaxfehler auf dem

+0

@ user3650751 Kennen Sie [repl.it] (https://repl.it/languages/python3)? –

+0

Ich nicht. Was ist das? Ich bin mit Windows Powershell fertig geworden und habe alles in Python gemacht. –