Mit der Veröffentlichung von Python 3.5 wurde die Manipulation von Listen, Tupeln, Sätzen und Dikten noch golfer.
Aus einer Iteration wird eine Menge / Liste
Vergleichen Sie die Paare:
set(T)
{*T}
list(T)
[*T]
tuple(T)
(*T,)
Viel kürzer! Beachten Sie jedoch, dass das normale, erweiterte, wiederholbare Entpacken kürzer ist , wenn Sie nur etwas in eine Liste konvertieren und einer Variablen zuweisen möchten :
L=[*T]
*L,=T
Eine ähnliche Syntax funktioniert für Tupel:
T=*L,
das ist wie ausgedehntes iterables Auspacken, aber mit dem Sternchen und dem Komma auf der anderen Seite.
Listen / Tupel verbinden
Das Entpacken ist etwas kürzer als das Verketten, wenn Sie eine Liste / ein Tupel an beide Seiten anhängen müssen:
[1]+T+[2]
[1,*T,2]
(1,)+T+(2,)
(1,*T,2)
Inhalt mehrerer Listen drucken
Dies ist nicht beschränkt auf print
, aber es ist definitiv, wo der größte Teil der Laufleistung herkommt. PEP448 ermöglicht jetzt das mehrfache Auspacken wie folgt:
>>> T = (1, 2, 3)
>>> L = [4, 5, 6]
>>> print(*T,*L)
1 2 3 4 5 6
Aktualisieren mehrerer Wörterbuchelemente
Dies wird wahrscheinlich nicht sehr oft vorkommen, aber die Syntax kann verwendet werden, um beim Aktualisieren von Wörterbüchern zu sparen, wenn Sie mindestens drei Elemente aktualisieren:
d[0]=1;d[1]=3;d[2]=5
d={**d,0:1,1:3,2:5}
Dies negiert grundsätzlich jegliche Notwendigkeit dict.update
.