Ich benutze Python bei der Arbeit "Ah, der Prozess der Erstellung einer Liste hier. Wenn Sie die Notation zur Aufnahme von Listen verwenden, können Sie sie präzise schreiben." Ich kann denken. Es gibt jedoch überraschend wenige Situationen, in denen ich eine Listeneinschlussnotation schreiben möchte. Als ich mich entschied, sie zu schreiben, "Oh, wie schreibst du die Listeneinschlussnotation? Nun, ich habe keine Zeit und schleife wie gewohnt?" Es ist eine Schande, die Bedeutung des Memorandums für mich einzuschließen.
Was haben Sie gedacht, als Sie dieses Wort zum ersten Mal hörten? Voller Noten. .. .. Um es ganz einfach auszudrücken, ist die Notation der Listeneinbeziehung ** So erstellen Sie Listendaten in einer Zeile ** ist.
Es kann jedoch nicht alles in einer Zeile geschrieben werden, und der Prozess des Erstellens einer Liste in einer Schleife kann in einer Zeile geschrieben werden (obwohl es einige Missverständnisse gibt). Ich selbst dachte: "Der Code, den ich bei der Arbeit schreibe, ist kompliziert!", Aber er kann unerwartet verwendet werden.
data = []
for i in range(10):
data.append(i)
print(data)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print([i for i in range(10)])
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Das Ergebnis der Listeneinschlussnotation ist das gleiche wie das einer normalen Schleife. Die Notation zur Aufnahme von Listen erfordert jedoch weniger Beschreibung. Und der Code ist präzise und leicht zu lesen. (Es ist schwer zu lesen, wenn man sich nicht daran gewöhnt.)
Werfen wir einen Blick auf den in der Liste enthaltenen Code.
[...]
Wie Sie wissen, wird dadurch eine Liste erstellt, sodass in regulären Schleifen keine "data = []" erforderlich ist.
for i in range(10)
Dies gilt auch für reguläre Schleifen und Listeneinschlüsse.
Für die Listeneinschlussnotation ist jedoch :
nicht erforderlich.
i for i in range(10)
Das erste angezeigte "i" enthält den Wert von "i" (das zweite "i"), das in der Schleife abgerufen wird.
Der zuerst angezeigte Wert von "i" wird für jede Schleife neu geschrieben.
Das "i" wird der Liste für die Anzahl der Schleifen hinzugefügt.
Ich denke, es ist einfacher zu verstehen, wenn es etwas spezifischer ist, also werde ich es im nächsten Fall erklären.
Wenn Sie die Daten in der Liste verarbeiten möchten. Zum Beispiel, wenn Sie jedem Daten in der Liste "[" aa "," b "," ccc "]" @ "hinzufügen möchten.
items = ['aa', 'b', 'ccc']
print([item + '@' for item in items])
# ['aa@', 'b@', 'ccc@']
Ich erstelle eine weitere Liste, indem ich den Daten in den Elementen "@" hinzufüge. Aus den Listendaten wurden weitere ** Listendaten in einer Zeile ** erstellt.
Wenn Sie ein weiteres Zeichen in der Mitte einer Zeichenfolge gemäß einer festen Regel wie der Datenverarbeitung hinzufügen möchten.
Zum Beispiel, wenn Sie für jedes Zeichen -
zu den Daten abcdefgh
hinzufügen möchten.
items = 'abcdefgh'
print('-'.join([item for item in items]))
# a-b-c-d-e-f-g-h
Hier werden ** Listendaten aus einer Zeichenfolge in einer Zeile erstellt. ** ** ** Die Daten in dieser Liste werden mit "-" verknüpft, um sie an eine Zeichenfolge zurückzugeben.
[Zusatz] Ich habe einen Kommentar erhalten, daher werde ich ihn hinzufügen. Dies war ohne Verwendung der Listeneinschlussnotation möglich. Sie müssen es nicht verschwenden.
items = 'abcdefgh'
print('-'.join(items))
# a-b-c-d-e-f-g-h
Übrigens, wenn Sie alle zwei Zeichen -
hinzufügen möchten.
items = 'abcdefgh'
print('-'.join([items[i*2: i*2+2] for i in range(int(len(items)/2))]))
# ab-cd-ef-gh
Es fühlt sich ein wenig überladen an, also ist es so?
items = 'abcdefgh'
loop_count = int(len(items)/2)
print('-'.join([items[i*2: i*2+2] for i in range(loop_count)]))
# ab-cd-ef-gh
[Zusatz] Ich habe auch einen Kommentar erhalten, also werde ich ihn hinzufügen. In dem obigen Fall wird der Zähler mit der Bezeichnung "i" verwendet, so dass ein Zugriff außerhalb des Bereichs auftreten kann. Es ist ein Schreibstil, der es vermeidet.
items = 'abcdefgh'
print('-'.join(ch1+ch2 for ch1, ch2 in zip(items[::2], items[1::2])))
# ab-cd-ef-gh
Ich habe festgestellt, dass das letzte Zeichen nicht ausgegeben wird, wenn die Anzahl der Zeichen ungerade ist, selbst wenn der Zähler verwendet wird oder nicht. Ich würde einen Zähler benutzen, aber ich konnte es vermeiden.
import math
items = 'abcdefghi'
loop_count = math.ceil(len(items) / 2)
print('-'.join([items[i*2: i*2+2] for i in range(loop_count)]))
# ab-cd-ef-gh-i
In Fall 1 werden die Daten in der Liste verarbeitet, um eine weitere Liste zu erstellen. Fall 2 ist ein Beispiel für die Verarbeitung einer Zeichenfolge, um eine Liste zu erstellen.
Beide Fälle können mit Schleifen erreicht werden, Listeneinschlüsse machen Ihren Code einfach und präzise.
Recommended Posts