Zuweisungen Iterabler an Tupel (Zuweisungen Iterabler an Tupel), Lektion, Seite 724712
https://www.purl.org/stefan_ram/pub/tupelzuweisungen_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Zuweisungen mit der Tupelschreibweise

Eine Zuweisung kann auf ihrer linken Seite auch Bindungsstellen (wie z.B. Namen) in Tupelschreibweise  und auf ihrer rechten Seite ein Iterables  haben.

Die einzelnen Objekte des Iterablen werden dann in der gegebenen Reihenfolge an die einzelnen Bindungsstellen gebunden.

Konsolenprotokoll

x, y = 1, 2

x

1
y
2

Die von der der voranstehenden Zuweisung bewirkte Änderung ist wie die von den folgenden beiden Zuweisungen bewirkte Änderung.

Konsolenprotokoll

x = 1

y = 2

x

1
y
2

Einklammern ändert im allgemeinen nichts an der Bedeutung.

Konsolenprotokoll

( x, y )= 1, 2

x

1
y
2
Konsolenprotokoll

x, y =( 1, 2 )

x

1
y
2
Konsolenprotokoll

( x, y )=( 1, 2 )

x

1
y
2

Im nächsten Beispiel ist das Iterable eine Liste.

Beispiel

x, y =[ 1, 2 ]

x

1
y
2

Im nächsten Beispiel ist das Iterable eine Zeichenfolge.

Beispiel

a, b = "xy"

a

'x'
b
'y'

Im nächsten Beispiel ist die linke Seite ein einfacher Name, dann wird das Tupel der rechten Seite einfach an diesen Namen gebunden (wie schon früher verwendet).

Beispiel

x = 1, 2

x

(1, 2)

Im nächsten Beispiel verwendet die linke Seite wieder die Tupelschreibweise und die rechte Seite das Iterable ›x‹ aus dem vorigen Beispiel.

Beispiel

a, b = x

a

1
b
2

Die Anzahl der Kommas

Im allgemeinen muß die Anzahl der Kommas auf der linken und rechten Seite einer Bindungsanweisung gleich sein.

Beispiel (übersetzt)
a, b = 1, 2, 3
WertFehler: zu viele Werte zum Entpacken (zwei erwartet)

Im allgemeinen muß die Anzahl der Kommas auf der linken und rechten Seite einer Bindungsanweisung gleich sein.

Beispiel (übersetzt)
a, b, c = 1, 2
WertFehler: zu wenig Werte zum Entpacken (drei benoetigt, zwei gefunden)

Das Reststernchen

Beispiel

x, y, *z = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

x

0
y
1
z
[2, 3, 4, 5, 6, 7, 8, 9]
Beispiel

x, y, *z = 0, 1

x

0
y
1
z
[]

Übungsaufgaben

/   Übungsaufgabe

Schreiben Sie eine Funktion namens »f«, deren Aufrufsausdruck »f()« ein Paar aus der Zahl «1» und der Zeichenfolge »a« als Wert hat, so daß sich der folgende Konsolendialog ergibt (dabei soll die Auslassung »…« durch einen bestimmten Text ersetzt werden).

Konsolendialog

f = lambda: …

n, s = f()

n

1
s
'a'

Sie können auch den folgenden Test benutzen, um zu erkennen, ob ihre Lösung korrekt ist.

Test
t = lambda f: f() ==( 1, 'a' )

Wenn «t( f )» ›True‹ ergibt, ist Ihre Lösung richtig.

/   Übungsaufgabe

Schreiben Sie eine Anweisung, welche die Bindungen der Namen »x« und »y« vertauscht.

(Wenn der Name »x« bisher an das Objekt o₀  und der Name »y« bisher an das Objekt o₁  gebunden war, soll der Name »x« hinterher also an das Objekt o₁  und der Name »y« an das Objekt o₀  gebunden sein.)

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724712 stefan_ram:724712 Zuweisungen Iterabler an Tupel Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724712, slrprddef724712, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/tupelzuweisungen_python