Python für und wenn auf einer Linie

Ich habe ein Problem mit python.

Mache ich eine einfache Liste:

>>> my_list = ["one","two","three"]

Ich möchte erstellen Sie eine "single line-code" finden Sie einen string.

ich habe zum Beispiel diesen code:

>>> [(i) for i in my_list if i=="two"]
['two']

Aber wenn ich mir die variable falsch ist (ich finde den letzten Wert meiner Liste):

>>> print i
three

Warum funktioniert meine variable enthalten, das Letzte element und nicht das element, das ich will, zu finden?

Wenn Sie möchten, finden eine Liste von Elementen, die bestimmte Kriterien erfüllen, verwenden Sie dann [i for i in my_list if ...]. Wenn Sie möchten, zu finden, eine Position, die bestimmte Kriterien erfüllt, sollten mit next; z.B. x = next(i for i in my_list if ...)
ich werde nicht der Wert, ist es immer noch zugewiesen, die Werte. Das Ergebnis enthält nur die Werte, die die Kriterien erfüllen.
Sie sind nicht falsch und Ihr Dolmetscher ist nicht falsch es ist nur, dass die Schleife geht bis zum letzten Wert, selbst wenn die Bedingung nicht erfüllt ist, so dass Sie immer "drei" zu vermeiden, könnten Sie tun, was @khelwood sagte
Warum bist du nicht mit "two" in mylist (die einen booleschen Wert zurückgibt) oder mylist.index("two") (welche die position zurückgibt, an der der string gefunden)? Da haben Sie schon die Zeichenfolge, die Sie suchen, ist es sinnlos zu haben, kehrte er doch immer wieder von der Suche, nicht wahr?

InformationsquelleAutor rostonik | 2015-09-15

Schreibe einen Kommentar