HOWTO · Python

Liste ohne eckige Klammern in Python drucken

Dieses Tutorial demonstriert, wie man in Python eine Liste ohne eckige Klammern druckt

Auf dieser Seite

Um eine Python-Liste ohne eckige Klammern anzuzeigen, können Sie ihre Elemente entpackt ausgeben, Zeichenketten mit einem Trennzeichen verbinden oder jedes Element in einer Schleife formatieren. Wählen Sie print(), wenn Sie nur eine Ausgabe benötigen; verwenden Sie join(), wenn Sie eine neue Zeichenkette speichern oder anderweitig weiterverwenden möchten. Die folgenden Beispiele zeigen die genaue Ausgabe der jeweiligen Methode.

Führen Sie dieses Beispiel aus. Der unveränderte Code und die angezeigte Ausgabe bleiben auf Englisch:

items = ["x", "y", "z"]
print(*items, sep=",")
x,y,z

join() für eine Liste aus Zeichenketten verwenden

Rufen Sie join() auf der Trennzeichen-Zeichenkette auf. Der Aufruf gibt eine einzelne Zeichenkette zurück und fügt das Trennzeichen zwischen den Eingabezeichenketten ein. Das ist praktisch, wenn Sie das formatierte Ergebnis einer Variablen zuweisen, mit anderem Text verbinden oder später ausgeben möchten. Der Beispielcode und die Ausgabe bleiben unverändert auf Englisch.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

items = ["red", "green", "blue"]
result = ", ".join(items)
print(result)
red, green, blue

Jedes Element muss bereits eine Zeichenkette sein. Enthält eine Liste eine Ganzzahl oder einen anderen Wert, der keine Zeichenkette ist, löst join() einen TypeError aus. Wandeln Sie solche Elemente daher zuerst um, wie weiter unten gezeigt. Bei einer leeren Liste ergibt das Zusammenfügen eine leere Zeichenkette; bei einer Liste mit nur einem Element enthält das Ergebnis kein Trennzeichen.

Gemischte Werte mit print() durch Entpacken ausgeben

Der Operator * entpackt ein iterierbares Objekt in einzelne Positionsargumente. print() akzeptiert Werte unterschiedlichen Typs und wandelt sie für die Ausgabe in Text um. Mit dem Parameter sep legen Sie den Text zwischen den Argumenten fest; standardmäßig ist es ein Leerzeichen. Der unveränderte Beispielcode und die Ausgabe bleiben auf Englisch.

values = [1, "two", 3.0, True]
print(*values, sep=" | ")
1 | two | 3.0 | True

Die Werte werden direkt in die Standardausgabe geschrieben; dabei entsteht keine wiederverwendbare zusammengefügte Zeichenkette. Bei einer leeren Liste liefert das Entpacken keine Werte, sodass print() nur den abschließenden Zeilenumbruch ausgibt. Verwenden Sie sep="", um die Werte direkt aneinanderzufügen, oder lassen Sie den Standardwert stehen, wenn Leerzeichen passen.

Werte vor dem Zusammenfügen in Zeichenketten umwandeln

Wenn Sie aus Werten wie Zahlen eine Zeichenkette erzeugen möchten, wandeln Sie jedes Element ausdrücklich mit map(str, values) oder einer Listenkomprehension um. So behalten Sie die Kontrolle über das Trennzeichen. Bei der Umwandlung wird die str()-Darstellung jedes Werts verwendet. Sie ist für lesbaren Text gedacht und bewahrt möglicherweise keine Typinformationen. Der unveränderte Beispielcode und die Ausgabe bleiben auf Englisch.

numbers = [1, 2, 3]
result = ",".join(map(str, numbers))
print(result)
1,2,3

Eine Listenkomprehension ist hilfreich, wenn Sie Werte zusätzlich umwandeln oder filtern möchten: ", ".join(str(value) for value in numbers). Keine der beiden Methoden verändert die ursprüngliche Liste; beide erzeugen Zeichenketten für die Ausgabe.

Die Darstellung mit str() für eine schnelle Ausgabe zuschneiden

Ein Aufruf von str() für eine Liste erzeugt ihre Python-Darstellung einschließlich der äußeren Klammern. Für eine schnelle Anzeige entfernt der Ausschnitt [1:-1] das erste und das letzte Zeichen dieser Darstellung. Der unveränderte Beispielcode und die Ausgabe bleiben auf Englisch:

items = [1, 2, 3]
print(str(items)[1:-1])
1, 2, 3

Dabei bleiben Details der Darstellung erhalten, etwa Anführungszeichen um Zeichenketten und verschachtelte Klammern bei verschachtelten Listen. Diese Methode eignet sich für eine einfache Sichtprüfung, ist aber weder ein allgemeiner Formatierer noch ein Serialisierungsformat. Wenn Sie ein gezielt gewähltes Trennzeichen und eine vorhersehbare Formatierung der Elemente benötigen, verbinden Sie besser umgewandelte Werte.

Jedes Element in einer Schleife individuell formatieren und ausgeben

Verwenden Sie eine Schleife, wenn jedes Element individuell formatiert werden soll oder Sie steuern möchten, was nach jedem Element folgt. print() beendet jeden Aufruf normalerweise mit einem Zeilenumbruch; mit end können Sie diesen Abschluss ändern. Wenn Sie Elemente einzeln ausgeben, geben Sie das Trennzeichen in end an. Der unveränderte Beispielcode und die Ausgabe bleiben auf Englisch.

items = [1, 2, 3]
for index, item in enumerate(items):
    if index:
        print(" ", end="")
    print(item, end="")
print()
1 2 3

Die Schleife gibt Trennzeichen nur zwischen den Elementen aus. Danach fügt das abschließende print() einen Zeilenumbruch an. So vermeiden Sie ein Leerzeichen am Ende und erhalten genau die gewünschte Zeile. Eine Schleife schreibt schrittweise in die Standardausgabe. Wählen Sie daher Entpacken oder Zusammenfügen, wenn Sie eine einzelne Ausgabeoperation oder eine wiederverwendbare Zeichenkette benötigen. Für ein anderes Format pro Element können Sie den Text in der Schleife zusammensetzen oder einen formatierten Wert an print() übergeben.