Extend Funktion in Einzeiler nutzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
martinjo
User
Beiträge: 186
Registriert: Dienstag 14. Juni 2011, 20:03

Hallo,

ich musste gerade feststellen, dass ich nicht wie ich es wollte verwenden kann, da eine Funktion ist und None zurück gibt. Daher hatte ich Probleme das folgende in eine Zeile zu stecken:

Code: Alles auswählen

storage_name = "Box 40"
code = ["KA"]
code.extend( storage_name.split(" ") )
code = "_".join(code).upper()
Ist nicht wirklich wichtig ob das mehrere Zeilen sind, mich interessiert jedoch wie ich das noch verkürzen kann.
Freue mich über Vorschläge
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

"_".join((KA,) + storage_name.split(" ")).upper()
Das Leben ist wie ein Tennisball.
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@EyDu: Tuple und List kann man nicht addieren.

Aber itertools.chain ist da sehr hilfreich:

Code: Alles auswählen

code = "_".join(itertools.chain(("KA",), storage_name.split()))
obwohl man hier natürlich auch das erste Element per Stringformatierung hinzubasteln kann:

Code: Alles auswählen

code = "KA_{}".format("_".join(storage_name.split()))
Benutzeravatar
martinjo
User
Beiträge: 186
Registriert: Dienstag 14. Juni 2011, 20:03

Super, vielen Dank

Wenn ich euch mein Skript mit 1000 Zeilen geben würde, blieben wohl nur 100 übrig :-)
Antworten