Ich habe ein Tupel ähnlicheauspacken Teile eines Tupels in Tupel
t = (1, '0076', 'AU', '9927016803A', '9927013903B', '0010', 'VO')
und ich möchte die ersten 6 Werte als Tupel extrahieren (um) und der letzte Wert als Zeichenfolge zurück.
Der folgende Code funktioniert bereits, aber ich frage mich, ob es einen "Einzeiler" zu erreichen, was ich suche.
# works, but it's not nice to unpack each value individually
cid,sc,ma,comp,mat,step,alt = t
t_new = (cid,sc,ma,comp,mat,step,)
print(t_new, alt) # (1, '0076', 'AU', '9927016803A', '9927013903B', '0010') VO
Das ist ganz in der Nähe zu dem, was ich suche, aber es gibt die ersten Werte als Liste statt eines Tupels:
# works, but returns list
*t_new,alt = t
print(t_new, alt) # [1, '0076', 'AU', '9927016803A', '9927013903B', '0010'] VO
Ich habe folgendes schon versucht, aber w/o Erfolg:
tuple(*t_new),alt = t # SyntaxError
(*t_new),alt = t # still a list
(*t_new,),alt = t # ValueError
Wenn es nicht anders geht, werde ich wohl mit meinem zweiten Versuch gehen und die Liste zu einem Tupel geworfen.
Es ist nie fiel mir ein, dass ich gerade wie eine Liste ein Tupel in Scheiben schneiden kann. Das ist der eine Liner, nach dem ich suche. –