Lerne Coding
Typumwandlung in Python
24.01.2020

Datentypen in Python3 umwandeln!

Inhaltsverzeichnis
[[TABLE OF CONTENTS]]
access_timeGeschätzte Lesezeit ca. 8 Minuten

Typumwandlung in Python wird benötigt, um verschiedene Typen in andere Datentypen umwandeln zu können. Dafür stellt Python verschiedene Standard-Methoden zur Verfügung. So kannst du Strings in Integers oder Floats in Strings umwandeln.

Da der Computer manchmal einen String erwartet, du aber einen Integer hast, kommst du um eine Typumwandlung von Integer zu String nicht herum. Bevor du einen Datentypen umwandeln kannst solltest du wissen, welche Typen es gibt.

Welche Typen gibt es in Python3?

Es gibt Typen für Zahlen; das sind Integers oder Floats. Der Unterschied zwischen den beiden Typen ist, dass Integers nur ganze Zahlen enthalten, während Floats Gleitkommazahlen sind, also auf gut Deutsch: Zahlen mit einem Komma.

Zu beachten ist: Es gibt den Typ "Long" für längere Zahlen, wie in Python2, in Python3 nicht mehr. Dieser wurde vereinheitlicht auf nur noch Integer.

Weitere Typen werden in einem separierten Artikel ausführlich behandelt, der demnächst erscheint.

Typumwandlung von Integers in andere Datentypen

Die Umwandlung von Typen in Python folgt oft einem einzigen Schema und das sieht wie folgt aus: Als erstes gibt man den Datentyp an, in den man etwas umwandeln will. In unserer Infografik ist es Float.

Wir haben eine Variable "v". Diese ist auf der linken Seite in der Ausgangsposition ein Integer. Wir können sie mit der type()-Funktion überprüfen. Nun wandeln wir den Typen mit float(v) um. Als Ergebnisse erhalten wir auf der rechten Seite ein Float.

Typenumwandlung Python
Typenumwandlung Python

Über diese einfache Weise können wir aber auch Tuples in Listen umwandeln oder andersherum. Diese Variante geht bei den meisten Typen - mit ein paar Ausnahmen, die ich unten noch genauer behandeln werde.

Mit dieser Weise kannst du gut folgende Datentypen umwandeln: Strings,Int,Float und list,tuple,set. Boolean kann man mit dieser Variante auch ausgezeichnet in Integers, Floats und Strings umwandeln.

Warum du bestimmte Datentypen so nicht umwandeln kannst, erkläre ich dir im weiteren Verlauf dieses Artikels.

Probleme bei der Umwandlung

Bei Umwandlungen können verschiedene Probleme auftreten. Es gibt zwei häufig vorkommende Probleme, die ich hier einmal benennen will.

Strings in Integers bzw. Floats umwandeln

Im untenstehenden Code seht ihr, dass unsere Umwandlung nicht ordnungsgemäß funktioniert hat. Grund ist, dass unsere String nicht aus numerischen Zeichen besteht und daher nicht umgewandelt werden kann. Um einen String in einen Float oder Integer umzuwandeln, ist es also notwendig, dass dieser nur aus numerischen Zeichen besteht. Allerdings kann die base zum Beispiel auf 16 gestellt werden, also auf Hexadezimalzahlen. Dann sind auch Buchstaben von a bis f möglich.

>>> int(v)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>

ValueError: invalid literal for int() with base 10: 'hello'

>>> float(v)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>

ValueError: could not convert string to float: 'hello'

Eine Aufruf der int-Typumwandlung mit einer Basis von 16 kann wie folgt aussehen:

int("f",base=16)

Float in einen Integer umwandeln

Bei einer Umwandlung von einem Float in einen Integer gehen in Python Daten verloren. Da der Integer keine Nachkommastellen darstellen kann, werden diese ohne Rundungen direkt abgeschnitten. So ist ein Float von 5.00001 und 5.99999 nach der Umwandlung beides 5, da nicht aufgerundet wird.

>>> int(5.0000001)
> 5
>>> int(5.9999999)
> 5

Typen von Listenelementen umwandeln

Angenommen, wir haben eine Liste von Strings, die nur Zahlen enthält. Dann können wir natürlich auch alle auf einmal umwandeln, anstatt alle einzeln umzuwandeln. Hierzu können wir den map-Befehl nutzen.

zahlenwerte = ["5","6","7","8"]

zahlenwerte = list(map(int,zahlenwerte)
print(zahlenwerte)

# [5, 6, 7, 8]

Als Ergebnisse erhalten wir eine Liste mit Integer-Werten.

Liste in Strings umwandeln

Natürlich können wir Listen auch in Strings umwandeln. Dafür gibt es verschiedene Methoden - wir können einfach unsere Liste durch den str()-Befehl jagen, wir können es aber auch mit einem anderen ausgewählten Separator schnell und einfach trennen.

elemente = ["Haus","Keller","Wohnung","Garage"]

print(str(elemente))

# "["Haus","Keller","Wohnung","Garage"]"

Nun haben wir einen String mit einer Abbildung der ursprünglichen Liste. Als meiner Meinung nach sehr viel elegantere Alternative können wir jedoch auch den join-Befehl nutzen.

elemente = ["Haus","Keller","Wohnung","Garage"]

print(" - ".join(elemente))

# "Haus - Keller - Wohnung - Garage"

Als Ergebnisse erhalten wir eine deutlich schönere Anordnung als mit dem String-Befehl.

Strings in Listen umwandeln

Im Grunde ist das Umwandeln von Strings in Liste ähnlich zu dem Umwandeln einer Liste in Strings. Lediglich der Befehl ändert sich, der am Anfang auf den String angewendet wird.

Beziehen wir uns wieder auf das Resulat aus dem Beispiel von "Liste in Strings umwandeln". Diesmal wollen wir den Typen wieder zurück zu einer Liste umwandeln.

>>> v.split(" - ")
['Haus', 'Keller', 'Wohnung', 'Garage']

Mit dem Split-Befehl können wir einfach sagen, an welchen Zeichen der String gesplittet werden soll. Zum Beispiel könnte man so auch Texte an Leerstellen splitten, dann alle Einzelzeichen, die eventuell durch Tippfehler kommen, aus der Liste löschen. Und dann erhalten wir ganz einfach die Wortanzahl von einem String.

Umwandlung von Dictionary in Liste

Die Umwandlung von Dictonary in Liste mit dem Befehl list() macht keinen Sinn, da dort aus einem Key Value Pair nur der Key in die Liste Geschrieben wird. Dort empfehlt es sich, über die Liste dann zum Beispiel zu iterieren und es selbst in die gewünschte Form zu bringen, da dort viel Spielraum für verschiedene Interpretationen ist.

Fazit

Mit dieser Anleitung solltest du nun fähig sein, alle wichtigen Datentypen in Python umwandeln zu können und dein Programm über alle Datentypen hinweg schreiben zu können.

Kommentare zum Artikel

Es sind noch keine Kommentare vorhanden? Sei der/die Erste und verfasse einen Kommentar zum Artikel "Typumwandlung in Python"!

Kommentar schreiben

Vom Autor Empfohlen
close