Website-Suche

Python Liste verbinden


Das Zusammenfügen von Listen in Python bedeutet, eine Liste von Zeichenfolgen mit einem angegebenen Trennzeichen zu einer Zeichenfolge zu verketten. Manchmal ist es nützlich, wenn man eine Liste in eine Zeichenfolge umwandeln muss. Zum Beispiel, um eine Liste von Buchstaben in eine durch Kommas getrennte Zeichenfolge zu konvertieren, um sie in einer Datei zu speichern.

Python Liste verbinden

Wir können die Python-String-Funktion join() verwenden, um eine Liste von Strings zu verbinden. Diese Funktion nimmt iterable als Argument und eine Liste ist eine Iterable, also können wir sie mit Listen verwenden. Außerdem sollte die Liste Strings enthalten; wenn Sie versuchen, eine Liste von Integers zu verbinden, erhalten Sie eine Fehlermeldung wie TypeError: sequence item 0: expected str instance, int found. Lassen Sie uns ein kurzes Beispiel zum Verbinden einer Liste in Python anschauen, um einen String zu erstellen.

vowels = ["a", "e", "i", "o", "u"]

vowelsCSV = ",".join(vowels)

print("Vowels are = ", vowelsCSV)

Wenn wir das obige Programm ausführen, wird es die folgende Ausgabe erzeugen.

Vowels are =  a,e,i,o,u

Python verbindet zwei Strings

Wir können die join()-Funktion auch verwenden, um zwei Strings zu verbinden.

message = "Hello ".join("World")

print(message) #prints 'Hello World'

Warum ist die join()-Funktion in String und nicht in List?

Eine Frage, die bei vielen Python-Entwicklern aufkommt, ist, warum die join()-Funktion Teil von String und nicht von List ist. Wäre die folgende Syntax nicht einfacher zu merken und zu verwenden?

vowelsCSV = vowels.join(",")

Es gibt eine beliebte StackOverflow-Frage dazu, hier liste ich die wichtigsten Punkte aus den Diskussionen auf, die für mich absolut Sinn machen.

Der Hauptgrund ist, dass die join()-Funktion mit jedem Iterable verwendet werden kann und das Ergebnis immer ein String ist. Daher ist es sinnvoll, diese Funktion in der String-API zu haben, anstatt sie in allen Iterable-Klassen zu haben.

Liste mehrerer Datentypen zusammenführen

Lassen Sie uns ein Programm betrachten, in dem wir versuchen werden, Listenelemente mit mehreren Datentypen zu verbinden.

names = ['Java', 'Python', 1]
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

Lass uns die Ausgabe dieses Programms sehen:

Dies war nur eine Demonstration, dass eine Liste, die mehrere Datentypen enthält, nicht mit der join()-Funktion zu einem einzigen String kombiniert werden kann. Die Liste muss nur String-Werte enthalten.

String mit der join-Funktion aufteilen

Wir können die join() Funktion auch verwenden, um einen String mit einem angegebenen Trennzeichen zu teilen.

names = 'Python'
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

Dies zeigt, dass, wenn ein String als Argument an die join()-Funktion übergeben wird, dieser nach Zeichen aufgeteilt wird und mit dem angegebenen Trennzeichen.

Verwendung der split() Funktion

Neben der Verwendung der join() Funktion kann auch die split() Funktion verwendet werden, um einen String zu teilen, was fast genauso funktioniert wie die join() Funktion. Schauen wir uns ein Codebeispiel an:

names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

split = single_str.split(delimiter)
print('List: {0}'.format(split))

Lass uns die Ausgabe dieses Programms sehen:

Wir haben dasselbe Trennzeichen verwendet, um den String erneut aufzuteilen und zur ursprünglichen Liste zurückzukehren.

Nur n-mal aufteilen

Die split()-Funktion, die wir im letzten Beispiel demonstriert haben, nimmt auch ein optionales zweites Argument, das angibt, wie oft die Split-Operation durchgeführt werden soll. Hier ist ein Beispielprogramm, um ihre Verwendung zu demonstrieren:

names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

split = single_str.split(delimiter, 1)
print('List: {0}'.format(split))

Lass uns die Ausgabe dieses Programms sehen:

Diesmal wurde die Split-Operation nur einmal durchgeführt, wie wir im Parameter der split()-Funktion angegeben haben. Das ist alles, um eine Liste zu einer Zeichenkette in Python zu verbinden und die split()-Funktion zu verwenden, um die ursprüngliche Liste wieder zu erhalten.