https://qiita.com/ganariya/items/fb3f38c2f4a35d1ee2e8
Um Python zu studieren, habe ich eine Group Intelligence Library namens acopy kopiert.
In acopy werden viele interessante Python-Grammatiken und -Sprachen verwendet, und es wird zusammengefasst, dass es unter ihnen nützlich ist.
Dieses Mal lernen wir die if-Anweisung der Python-Listeneinschlussnotation.
Mithilfe der if-Anweisung in der Listeneinschlussnotation können Sie den Wert auswählen, der für die Liste verwendet werden soll.
Wenn Sie beispielsweise eine Liste schreiben, die gerade Zahlen in $ [0, N) $ identifiziert
N = int(input())
odds = [x for x in range(N) if x % 2]
print(odds)
Sie können wie oben schreiben. Es bestimmt nur x, wenn die Bedingung "wenn x% 2" erfüllt ist.
Mit anderen Worten
N = int(input())
arr = []
for x in range(N):
if x % 2 == 0:
arr.append(x)
Das Obige ist der entsprechende Code.
Kann mit dem ternären Operator kombiniert werden.
Beurteilt die Bedingung ** rechts ** in der Listeneinschlussnotation den Wert? Würden Sie gerne? Es ist ** Auswahl ** von.
Andererseits bestimmt der ternäre Operator die Bedingung aus den ausgewählten Werten und ändert den im Fall von True und im Fall von False zurückgegebenen Wert.
Es wird wie zuvor eine gerade Zahl zurückgegeben, aber wenn die 1 0 ist, geben wir eine Liste zurück, die $ 0 $ in $ x $ enthält.
N = int(input())
'''
[[], 2, 4, 6, 8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 12, 14, 16, 18, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 22, 24, 26, 28, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
'''
evens = [x if x % 10 else [0] * x for x in range(N) if x % 2 == 0]
print(evens)
Das wenn auf der Rückseite nach für Richter beurteilt, ob es gerade ist oder nicht und sortiert es. Nach dem Durchlaufen der Sortierung wird der ternäre Operator verwendet, um ein Array zurückzugeben, das $ 0 $ und $ x $ enthält, wenn die Einerstelle nicht 0 ist.
Um ehrlich zu sein, macht es im obigen Beispiel keinen Sinn, es zu verwenden.
Recommended Posts