Listen Einträge zu einem eintrag zusammenfassen

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
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Hallo,
ich habe eine Liste mit, z.B. 6 Einträgen, "arg1", "arg2", "arg3", "arg4", "arg5", "arg6".

Jetzt möchte ich dass die ersten 3 Einträge, also "arg1", "arg2", "arg3" so bleiben wie sie sind, aber alle die danach kommen sollen als ein vierter Eitnrag zusammengefasst werden, damits am Ende ca. so aussieht:

Code: Alles auswählen

my_list = [ "arg1", "arg2", "arg3", "arg4 arg5 arg6"]
Ich weiß halt vorher nicht, wie viele Einträge die Liste haben wird, nur dass immer nach dem dritten alle zusammengefasst werden sollen.
Mein Ansatz sah ungefähr so aus:

Code: Alles auswählen

                if len(args) > 3:
                    for i in range(len(args)):
                        if i >= 3:
                            args[2] = str("%s %s" % (args[2], args[i]))
Das Problem ist, hier werden zwar als arg[2] alle folgenden einträge geschrieben, aber danach nochmal die jeweiligen einträge einzeln, ca. so:

Code: Alles auswählen

['arg1', 'arg2', 'arg3 arg4 arg5, 'arg3'', 'arg4', 'arg5']

Wie kann ich diese Einträge dann da wieder abspalten lassen? Oder gibt es vllt gleich eine viel einfachere Lösung diese Einträge zusammenzuhängen?
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Statt Listen zu verändern, baut man sich in Python neue:

Code: Alles auswählen

args = ["arg1", "arg2", "arg3", "arg4", "arg5", "arg6"]
neue_args = args[:2] + [" ".join(args[2:])]
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Vielen Dank :-)
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Antworten