Variable Längenzuweisung in Python?

Die Python-Zuweisungsanweisung kann wie folgt geschrieben werden.

a, b = 1, 2

Sie können auch eine Funktion mit Argumenten variabler Länge schreiben, indem Sie wie folgt schreiben.


def func(*args):
  print(repr(args))

func(1)
#Ausgabe: (1,)
func(1, 2)
#Ausgabe: (1, 2)

Nun, es ist eine Weile her, seit ich Python gestartet habe, also weiß ich so viel, aber plötzlich fragte ich mich, ob ich "*" (Sternchen) in der Zuweisungsanweisung verwenden könnte. Es hängt davon ab, ob.

a, *b = 1, 2, 3
print((a, b))
#Ausgabe: (1, [2, 3])

Du kannst es schaffen!

Nur für den Fall, wenn Sie die Spezifikationen überprüfen,

Wenn die Zielliste nur ein Ziel mit einem Sternchen enthält, das als "markiertes" Ziel bezeichnet wird: Das Objekt ist iterierbar und mindestens ein Element weniger als die Anzahl der Ziele in der Zielliste. Haben müssen. Das erste Element der Iterable wird dem Ziel vor dem markierten Ziel von links nach rechts zugewiesen. Das Ziel am Ende der Iterable wird dem Ziel nach dem markierten Ziel zugewiesen. Dem markierten Ziel wird eine Liste der verbleibenden Elemente der Iterable zugewiesen (die Liste kann leer sein).

Es ist gut geschrieben.

Lassen Sie uns verschiedene Dinge tun.

a, *b = 1,
print((a, b))
#Ausgabe: (1, [])
a, *b, c = 1, 2, 3, 4, 5
print((a, b, c))
#Ausgabe: (1, [2, 3, 4], 5)
*a, = 1, 2, 3
print(a)
#Ausgabe: [1, 2, 3]

Das Folgende ist jedoch nicht gut.

a, b, *c = 1,
# ValueError: not enough values to unpack (expected at least 2, got 1)
#c kann leer sein, aber a,Der Wert, der b zugewiesen werden soll, muss angegeben werden.
*a = 1, 2, 3
# SyntaxError: starred assignment target must be in a list or tuple
# 「*Ziele mit "" müssen im Listen-Taple enthalten sein.

Bisher war es nur auf der linken Seite, aber es scheint, dass es auch auf der rechten Seite verwendet werden kann.

d = 10, 20
a, b, c = 1, *d
print((a, b, c))
#Ausgabe: (1, 10, 20)
# 「a, b, c = 1, d[0], d[1]"gleich wie.

Recommended Posts

Variable Längenzuweisung in Python?
Python-Unterstrichvariable
Python-Variablenerweiterung, Format
[Python] Mehrzeilige Zeichenfolgenzuweisung
Python
[Python] Variablen (Definition, Ausgabe, Wertänderung)
Ändern Sie die Länge der Python-CSV-Zeichenfolgen
Python> Link> Initialisierung und Zuweisung von 2D-Arrays
[Python] Ruft den Variablennamen mit str ab
[Einführung in die Udemy Python3 + -Anwendung] 8. Variablendeklaration
Kombinieren Sie Python-Funktionsargumente zu einer einzigen Variablen