Python One-Liners. Christian Mayer

Чтение книги онлайн.

Читать онлайн книгу Python One-Liners - Christian Mayer страница 11

Автор:
Серия:
Издательство:
Python One-Liners - Christian Mayer

Скачать книгу

      Dieser Code zeigt mehrere Beispiele für den Datenwert None (und was er nicht ist). Falls Sie für eine Funktion keinen Rückgabewert definieren, wird standardmäßig None zurückgeliefert.

       Container-Datenstrukturen

      Python enthält Container-Datentypen, die effizient mit komplexen Operationen zurechtkommen und dabei leicht verwendbar sind.

       Listen

      Die Liste ist ein Container-Datentyp, der eine Abfolge von Elementen speichert. Im Gegensatz zu Strings sind Listen veränderbar – Sie können sie zur Laufzeit modifizieren. Am besten beschreibe ich die Liste an einigen Beispielen:

      l = [1, 2, 2]

      print(len(l))

      # 3

      Dieser Codeausschnitt zeigt, wie eine Liste mittels eckiger Klammern erzeugt und dann mit drei Integer-Elementen gefüllt wird. Elemente in Listen dürfen sich übrigens wiederholen. Die Funktion len() gibt die Anzahl der Elemente in einer Liste zurück.

       Schlüsselwort: is

      Das Schlüsselwort is prüft einfach, ob beide Variablen auf dasselbe Objekt im Speicher verweisen. Das kann für Python-Anfänger verwirrend sein. Listing 1–7 prüft, ob zwei Integer und zwei Listen sich auf dasselbe Objekt im Speicher beziehen.

      print(x is y)

      # True

      print([3] is [3])

      # False

       Listing 1–7 Das Schlüsselwort is im Einsatz

      Wenn Sie zwei Listen anlegen, beziehen diese sich – auch wenn sie dieselben Elemente enthalten – auf zwei unterschiedliche Listenobjekte im Speicher. Das Verändern des einen Listenobjekts hat keinen Einfluss auf das andere Listenobjekt. Wir bezeichnen Listen als veränderbar, weil sie nach dem Erzeugen modifiziert werden können. Wenn Sie also prüfen, ob eine Liste sich im Speicher auf dasselbe Objekt bezieht, ist das Ergebnis False. Integer-Werte dagegen sind unveränderbar, weshalb nicht das Risiko besteht, dass eine Variable das Objekt verändert, das dann versehentlich alle anderen Variablen ändert. Der Grund besteht darin, dass Sie das Integer-Objekt 3 nicht ändern können – wenn Sie es versuchen, wird lediglich ein neues Integer-Objekt angelegt, und das alte bleibt unverändert.

       Elemente hinzufügen

      Python bietet drei einfache Möglichkeiten, um Elemente zu einer vorhandenen Liste hinzuzufügen: Anhängen, Einfügen oder Listenverkettung.

      # 1. Append (Anhängen)

      l = [1, 2, 2]

      l.append(4)

      print(l)

      # [1, 2, 2, 4]

      # 2. Insert (Einfügen)

      l = [1, 2, 4]

      l.insert(2, 3)

      print(l)

      # [1, 2, 3, 4]

      # 3. Listenverkettung

      print([1, 2, 2] + [4])

      # [1, 2, 2, 4]

      Alle drei Operationen generieren die Liste [1, 2, 2, 4]. Dabei ist die append-Operation am schnellsten, weil sie weder die Liste durchlaufen muss, um ein Element an der korrekten Position einzufügen (wie bei insert), noch aus zwei Teillisten eine neue Liste erzeugen muss (wie bei der Listenverkettung). Grob gesagt, benutzen Sie die insert-Operation nur, wenn Sie ein Element an einer bestimmten Position in der Liste hinzufügen wollen, die nicht die letzte Position ist. Die Listenverkettung wiederum verwenden Sie, um zwei Listen beliebiger Länge miteinander zu verketten. Beachten Sie, dass eine vierte Methode, extend(), es Ihnen erlaubt, effizient mehrere Elemente an eine bestimmte Liste anzuhängen.

       Elemente entfernen

      Mit der list-Methode remove(x): können Sie ganz leicht ein Element x aus einer Liste entfernen:

      l = [1, 2, 2, 4]

      l.remove(1)

      print(l)

      # [2, 2, 4]

      Die Methode arbeitet auf dem Listenobjekt selbst, statt eine neue, geänderte Liste zu erzeugen. Im vorherigen Codebeispiel erzeugen wir ein Listenobjekt namens l und modifizieren genau dieses Objekt im Speicher, indem wir ein Element entfernen. Dies verhindert eine unnötige Belegung von Speicher, da es keine redundanten Kopien der gleichen Listendaten gibt.

       Listen umkehren

      Sie können die Reihenfolge der Listenelemente mit der Methode list.reverse() umkehren:

      l = [1, 2, 2, 4]

      l.reverse()

      print(l)

      # [4, 2, 2, 1]

      Durch das Umkehren der Liste wird das ursprüngliche Listenobjekt modifiziert und nicht lediglich ein neues Listenobjekt angelegt.

       Listen sortieren

      Mit der Methode list.sort() können Sie die Listenelemente sortieren:

      l = [2, 1, 4, 2]

      l.sort()

      print(l)

      # [1, 2, 2, 4]

      Auch hier wird durch das Sortieren der Liste das originale Listenobjekt verändert. Die resultierende Liste ist aufsteigend sortiert. Listen mit String-Objekten werden in aufsteigender lexikografischer Weise sortiert (von 'a' bis 'z'). Im Allgemeinen geht die Sortierfunktion davon aus, dass zwei Objekte miteinander verglichen werden können. Grob gesagt gilt, wenn Sie a > b für die Objekte a und b eines beliebigen Datentyps berechnen können, kann Python auch die Liste [a, b] sortieren.

       Listenelemente indizieren

      Den Index eines bestimmten Listenelements x können Sie mit der

Скачать книгу