die volle Schleifen wie folgt aussehen:
line_list = []
for line in file.splitlines():
for item in my_list:
if item in line:
line_list.append(line)
in der gleichen Zeile Stoßen, so etwas wie dieses (nicht wahr Python-Syntax):
line_list = []
for line in file.splitlines(): for item in my_list: if item in line: line_list.append(line)
natürlich ist der .append()
Teil ist für alle Comprehensions, so setzen wir es am Anfang:
line_list = [line for line in file.splitlines() for item in my_list if item in line]
Wenn Sie nur an Listenkompressen wie diese denken, sollte es einfach sein, herauszufinden, welche Reihenfolge verwendet wird.
Lassen Sie sich nicht verwirren, wenn Sie else
Anweisungen haben. Zum Beispiel: - am Anfang else
line_list = ["no" if line == "yes" else line for line in file.splitlines()]
mit den if
:
line_list = []
for line in file.splitlines():
if line == "yes":
line_list.append("no")
else:
line_list.append(line)
würde zu interpretieren. Warum? du fragst. Nun, es hätte man wie folgt geschrieben:
line_list = []
for line in file.splitlines():
line_list.append("no" if line == "yes" else line)
Sie sehen, der Teil am Anfang des Verständnisses ist immer noch das gleiche wie das, was zu .append()
geben wird. Die else
-Klausel ist nicht Teil der Syntax für das Verständnis; Es ist ein separates Merkmal der Sprache.
@ TigerhawkT3 einen guten Punkt über any()
verwenden, though.
macht 'Any' Kurzschlüsse wie' next', sobald es ein Element des Iterators gibt, für das der Ausdruck True ergibt? –
Ja, 'any()' und 'all()' werden kurzgeschlossen. – TigerhawkT3