Zusammenfügen von Zeichenketten über join()
Die Methode join()
ist extrem hilfreich, um Zeichenketten zusammenzufügen. Wir erhalten als Rückgabe ein String. Was sich so beiläufig anhört, ist extrem wichtig. Denn wir können join()
mit verschiedenen Datentypen „füttern“ und bekommen eine Zeichenkette zurück!
Befehlsaufbau:
str = trennzeichen.join(Aufzählung)
Beispiel: Einsatz von join()
mit dem Datentyp Liste
wortliste = ['Axel', 'Elke', 'Martin']
trennzeichen = '#'
ergebnis = trennzeichen.join(wortliste)
print(ergebnis)
Als Ergebnis erhalten wir zurück:
Axel#Elke#Martin
Wir erhalten aus dem Datentyp Liste eine String. Die einzelnen Elemente sind durch „#“ getrennt.
Die Nutzung von join()
ist anhand von dem Datentyp Listen einfacher verständlich und die Mächtigkeit der Methode schnell klar. Es funktioniert genauso mit Zeichenketten („Strings“). Allerdings wird jedes Zeichen des Textes getrennt durch das Trennzeichen vom nächsten Zeichen:
zeichenkette = "abcd"
trennzeichen = '#'
ergebnis = trennzeichen.join(zeichenkette)
print(ergebnis)
Als Ergebnis erhalten wir:
a#b#c#d
Wir können die Datentyp „List“, „Tupel“, „String“, „Dictionary“ und „Set“ nutzen und join()
übergeben.
beliebige Anzahl von Trennzeichen
Dabei kann auch mehr als 1 Trennzeichen angegeben werden. Die Nutzung von trennzeichen = ' #123# '
führt beispielsweise zu „Axel #123# Elke #123# Martin“.
wortliste = ['Axel', 'Elke', 'Martin']
trennzeichen = ' #123# '
ergebnis = trennzeichen.join(wortliste)
print(ergebnis)
Und als Ergebnis erhalten wir:
Axel #123# Elke #123# Martin
Datentyp Dictionary und Fallstricke bei join()
Der Datentyp Dictionary (auf deutsch „Wörterbuch“ bzw. assoziative Liste) kann als Inhalte sowohl Strings wie Werte haben. Besteht das Wörterbuch nur aus Strings, haben wir kein Problem. Wichtig ist nur zu wissen, dass immer bei dem Datentyp Dictionary der „key“ verwendet wird.
deutschenglisch = { 'null': 'zero', 'eins': 'one' }
trennzeichen = '#'
print(trennzeichen.join(deutschenglisch))
Und als Ergebnis erhalten wir:
null#eins
Ist der Inhalt allerdings numerisch, bekommen wir eine Fehlermeldung!
woerterbuch = {0: 'null', 1: 'eins' }
trennzeichen = '#'
print(trennzeichen.join(woerterbuch))
Anstelle eines Ergebnisses erhalten wir die Fehlermeldung: „TypeError: sequence item 0: expected str instance, int found“